Mercurial(Hg)によるソフトウェア開発を始めようMercurial(Hg)によるソフトウェア開発を始めようMercurial(Hg)によるソフトウェア開発を始めようOSDNでは、無料で利用できるMercurialリポジトリを提供しています。複数人で共有できるMercurialリポジトリを作成するMercurialとは?MercurialはPythonで実装されたクロスプラットフォームのソースコード管理システムです。コマンドラインのフロントエンドの名称である「hg」という名前でも呼ばれています。ソースコードに対する変更を記録・管理するバージョン管理機能を持ち、またマージやクローンといった、分散型のバージョン管理に必要なすべての機能を備えています。Windowsサポートも優れており、Windows向けの公式GUIクライアント「TortoiseHg」も開発されています。ソースコード管理システム/バージョン管理システムってなに?バージョン管理というのは、指定した任意の時点における指定したファイルやディレクトリの内容を「リポジトリ」と呼ばれるデータベースに記録しておくことで、変更の内容をあとから容易に参照できるようにすることです。これにより、誰がどの個所を修正したのか、修正前はどのような状態だったのか、というのを容易に把握できるようになり、また修正後のファイルを記録しておいた修正前の状態に復元する、といったことも簡単に行えるようになります。System、VCS)と呼ばれており、またリポジトリに状態を記録することを「コミット」と呼びます。近年のバージョン管理システムの多くではファイルやディレクトリの変更履歴を管理するだけでなく、ネットワーク経由でリポジトリへのアクセスを可能にするクライアント/サーバー機能が搭載されており、これを利用してリモートのサーバーから最新版のファイルや記録されている任意の時点のファイルを取り出したり、また自分が更新したファイルの差分をリモートのサーバーに送信して変更内容を記録させる、といったことが可能になっています。System、SCM)などと呼ばれることもあります。Mercurialの特徴Mercurialは、各開発者がそれぞれローカルにリポジトリを作成して利用できる分散型のソースコード管理システムです。そのため、ネットワークが利用できない環境でもバージョン管理を行うことが可能です。大きな開発プロジェクトでもストレス無く利用できる高速性や、さまざまな環境で動作する移植性の高さも特徴です。Mercurialの主要部分はPythonで実装されており、処理速度が必要な一部のみがCで実装されています。そのため、ほぼすべての主要プラットフォームでMercurialは利用可能です。Windows環境との親和性も高く、GUIでリポジトリを操作できるクライアントや、WindowsのExplorerと連携するシェル拡張などが標準で提供されています。分散型のソースコード管理システムでは、開発者がローカルのリポジトリに保存した変更を、「push」および「pull」と呼ばれる仕組みでほかのリポジトリ(リモートリポジトリ)に送信することができます。pushはリモートリポジトリとローカルリポジトリの差分情報をリモートリポジトリに送信するもので、これによりリモートリポジトリとローカルリポジトリを同期させることが可能になります。pullはリモートリポジトリとローカルリポジトリとの差分情報をローカルリポジトリに持ってくるもので、ほかの開発者がソースコードに加えた変更点などを手元のソースコードに適用する場合に利用されます。任意のリモートリポジトリからファイルを取り出し、自分の手元でファイルやディレクトリに変更を加えるためにローカルリポジトリを作成する作業は「clone」と呼ばれています。ほかの開発者が作成したソースコードに対し新たに変更を加える際は、cloneを使ってファイルを取得し、修正を加えてコミットし、pushもしくはpullで変更点をやり取りする、という開発スタイルが一般的です。Mercurial(hg)の基本コマンドMercurialを利用するためのクライアントとしては、コマンドラインから利用するhgコマンドや、Windowsなどで利用できるGUIクライアント「TortoiseHg」などがあります。init」コマンドを実行します。init」コマンドを実行すると、実行したディレクトリにリポジトリが作成されます。リポジトリに関する情報は「.hg」というディレクトリに格納されます。add」コマンドを利用します。ci」コマンドを使用します。"<コミットメッセージ>"ここで、コミットメッセージには変更点の要約などを入力する。省略された場合、エディタなどが起動してそこでメッセージを入力する形になります。clone」コマンドを実行します。push」コマンドを実行します。pull」コマンドを実行します。無償で利用できるシェルサーバー/Webサーバーでのhgコマンドサポートこれらの機能は、OSDNへのアカウント登録を行うだけですべて無料で利用できます。作成できるリポジトリ数やサイズの制限などはありません。個人向け開発支援サービス「PersonalForge」では、Mercurialの個人リポジトリやファイルアップローダー、Wikiといった機能を提供する「作業部屋」を利用できます。作業部屋は無制限に作成でき、また任意のファイルをアップロードして公開できます。PersonalForgeではOSDNが独自に開発したレポジトリブラウザが提供されており、任意のブランチのファイル一覧やコミット履歴、ブランチ/タグ一覧などをWebブラウザ上で確認できます。作業部屋を作成する開発プロジェクトにおけるMercurialリポジトリの提供オープンソースソフトウェア開発に向けた「プロジェクト」機能では、ソースコード管理システムを提供しています。GitおよびSubversion、Mercurial、Bazaar、CVSといったソースコード管理システムが利用可能で、GitおよびSubversion、Mercurialについては独自開発のリポジトリブラウザが提供されています。そのほかプロジェクト向けにはWikiやファイルリリース(アップローダ)、チケット、ニュース、フォーラム(掲示板)、メーリングリストと行った機能も利用できます。プロジェクトを作成する無償で利用できるシェルサーバー/WebサーバーでのhgコマンドサポートOSDNでは、プロジェクトで開発したソフトウェアのテストやWebサイト構築に利用できるシェルサーバーを提供しています。シェルサーバーにはSSHを利用してログインでき、またMySQLデータベースの利用も可能です。シェルサーバーにはgitやsvn、hgといったコマンドがインストールされており、これらを使ってファイルをシェルサーバーにコピーすることが可能です。