WindowsでMercurial
MercurialをWindows上で使う場合の手順をざっくりとまとめました。
全体の手順は以下のような流れです。大体1時間ぐらいかかります。
- bitbucketアカウントを取得
- リポジトリ作成
- SSHの設定
- Mercurialクライアントのインストール
- 環境設定
- リポジトリのダウンロード
- リポジトリへファイルの追加
- コミット
- リポジトリへ変更の反映
1.bitbucketアカウントを取得
「bitbucket」はMercurialのリポジトリをフリーで使わせてくれるサービスです。ひとつのリポジトリに対して5人以内なら無料で使えるそうで、練習なら十分すぎるほど使えます。
Free source code hosting — Bitbucket
上記ページを開き、「SIGN UP NOW, FREE」ボタンを押すと、個人情報入力画面が表示されるので、登録します。
登録が完了すると、自分のポータルのページが表示されたはずです。
2.リポジトリ作成
bitbucket上に新しいリポジトリを作成します。
「Repositories」→「Create Repository」
表示された画面で、Name欄にリポジトリ名、それ以外も適当に入力して「Create Repository」押下で実行すると、Overviewページへ移動します。
3.SSHの設定
PuTTYのダウンロード
まず、以下からzipかmsiをダウンロードします。
PuTTY Download Page (2012/6/19現在の最新はver0.62)
SSHキーの準備
適当な場所に展開またはインストールしたら、まずはキーを作成するために「puttygen.exe」を起動します。
「Generate」ボタンを押し、上のエリアでマウスをグリグリ動かすと「Public key for pasting into OpenSSH authorized_key file:」欄にOpenSSHの公開鍵が表示されますのでコピーします。ついでにパスフェーズを入力して「Save private key」押下で秘密鍵をローカルに保存しておきます。
ローカルのSSHキーの設定
「pageant.exe」を起動します。タスクトレイのアイコンをダブルクリックし、「Pageant Key List」を開いてから「Add Key」を押下し、秘密鍵のファイルを選びます。
4.Mercurialクライアントのインストール
TortoiseHgという、Mercurialの機能+GUI+Explorer拡張という便利なフリーソフトがあるので、それを入れます。以下から環境にあったセットアップをダウンロードします。
Mercurial SCM (2012/6/19現在の最新はver2.2.2)
言われるままインストールしていけば完了します。GUIでも色々できそうですが覚えるのが大変そうなので、以下はCUIベースで説明します。
5.環境設定
コレをしないと動きません。「mercurial.ini」という名前の設定ファイルを、ユーザーのフォルダ直下に入れます。
c:\Users\suzuki\mercurial.ini
このファイルには以下のような設定を入れておきます。
[ui] username=Taro Suzuki <taro.suzuki@abc.com> [extensions] graphlog=
前半はユーザー名の設定です。名前とメールアドレスの間は半角スペース1文字が必要だそうです。後半はログを「hg glog」でグラフィカルに見たい場合に入れておきます。
次に日本語化。コントロールパネル→システムとセキュリティ→システム→「システムの詳細設定」で「システムのプロパティ」ダイアログを開く。「環境変数」ボタン押下し、システムの環境変数欄の「新規」ボタンを押下。
名前を「LANG」、値を「ja_JP」と入力し、OSを再起動する。
6.リポジトリのダウンロード
ようやく準備が整いました。早速、bitbucketに作ったリポジトリをローカルに落としてきてみましょう。
まず、bitbucketで先ほど作ったリポジトリ画面を開きます。Overviewのタブの中に、「Clone this repository」とあってその下にcloneのコマンドが表示されているので、コピーします。
$ hg clone ssh://hg@bitbucket.org/taro.suzuki/myrepository
コマンドプロンプトを開き、このリポジトリをダウンロードしたいフォルダへ移動してから、closeコマンドを実行します。
$ cd \users\suzuki\documents\ $ hg clone ssh://hg@bitbucket.org/suzuki/myrepository
色々表示されて完了したら、ローカルのdocumentsフォルダを開いてみます。myrepositoryというフォルダーができているはずです。さらに、「.hg」というフォルダーが見えます。このフォルダーにはリポジトリの接続先や履歴情報が格納されており、ルートに一つだけ存在します。このフォルダーを削除すると、連動が切れた状態に戻ります。よって消してはいけません。
このcloneやpullの作業は、VSSやTFSのチェックアウトの操作を表しています。そのためこのフォルダー以下への編集は、すべて差分として認識されます。
7.リポジトリへファイルの追加
管理対象への追加は自動ではやってくれないので、自分で追加してやります。
まず、エクスプローラー等でファイルを追加し、ローカルリポジトリのあるフォルダーへ移動してから、addコマンドで管理対象へ追加します。
$ cd \users\suzuki\documents\myrepository $ hg add
これだけです。
8.コミット
Mercurialでは、追加・編集・削除・マージのたびにコミットしなければならなりません。コマンドは以下。これで、それまでの変更がローカルのリポジトリにコミットされます。
$ hg commit
これだけです。
9.リポジトリへ変更の反映
コミットはローカルのリポジトリへ変更が反映されただけです。bitbucket上のメインの(セントラルの)リポジトリへ変更を反映するには「push」します。
$ hg push
これだけです。
bitbucketの「Repository」で「Source」のタブを見てみると、ファイルが追加されているはずです。
以上で完了です。次回はVisual Studioのプロジェクトをリポジトリへ追加してみます。