TortoiseHg と Mercurial にようこそ! TortoiseHg は Mercurial 分散バージョン管理システム (DVCS) に Windows エクスプローラのシェル拡張と使い勝手の良い GUI フロントエンドを提供するアプリケーションです。すべての TortoiseHg の機能はエクスプローラの右クリックメニューからだけでなく、付属の hgtk コマンドラインツールからも起動することができます。 Mercurial のコマンドも通常の hg コマンドで利用できます。
まず最初にやることは TortoiseHg にあなた自身について教えることです。 TortoiseHg のユーザ設定ダイアログから設定できます。 プロジェクトディレクトリを右クリックして TortoiseHg ‣ ユーザ設定 を選択します。
デスクトップからユーザ設定ダイアログを開く
このメニューは TortoiseHg 設定ダイアログを開いて、ホームディレクトリにある あなたのユーザ設定を編集します。コマンドラインから使用しているのであれば hgtk userconfig でユーザ設定ダイアログを開くことができます。
TortoiseHg 設定ダイアログ
そして コミット ページに切り替えて、 ユーザ名 の テキストボックスに名前を入力してください。
ノート
ユーザ名の設定をし忘れた場合、TortoiseHg は必要に応じてコミット時にユーザ名の 入力を促します。
ノート
ユーザ名として設定する名前の形式に厳密なルールがあるわけではありませんが、 多くの人が次のような形式を採用しています:
氏名 <電子メールアドレス>
例えば:
Taro Yamada <taroyamada@example.net>
電子メールアドレスはチェンジログビューアで履歴を表示する際には削除され、 Mercurial 内蔵のウェブサーバを利用した場合はスパム対策のためメールアドレス の一部のみ表示されます。
次に TortoiseHg ページに切り替え、 3-way マージツール の設定項目を選択します。このドロップダウンリストにはシステム内で検出された すべての利用可能なマージツール (kdiff3 は Windows 向けの TortoiseHg インストーラ同梱) と Mercurial 組み込みのマージ処理が含まれています。 好みのマージツールを選んでください。
選択したマージツールを GUI 差分表示ツールとしても利用したい場合は GUI 差分表示ツール の設定項目を 未設定 のままにしておいてください。マージツールとは異なる他の差分ツールを 利用したい場合はドロップダウンリストから好きなツールを選択してください。
ドロップダウンリストに選択肢がない場合は mergetools.rc がサポートしている 差分/マージツールをインストールするか、未サポートのツールであれば Mercurial.ini ファイル、または .hgrc ファイルに設定を記述する必要があります。
ノート
TortoiseHg をソースコードからインストールしている場合、 contrib/mergetools.rc ファイルを HGRC パスに含める必要があります。 例えば %include を使うことで ~/.hgrc ファイルから読み込みます。
他のユーザ設定も自由に設定してください。必要であればユーザ設定における 設定値はリポジトリごとの設定で上書きすることができます。
OK ボタンを押して変更を保存して完了です。
ノート
ほとんどの TortoiseHg ダイアログは設定を反映するために 再起動する必要があります (システムの再起動ではない)。
右クリックメニューの ここにリポジトリを作成 を選択するか、 コマンドラインから hgtk init を実行して最初のリポジトリを ローカルディスク上に作成してみましょう。 この作業はプロジェクトディレクトリのルートで一度だけ行ってください。
リポジトリ初期化ダイアログ
特に理由がなければ 特殊ファイルを追加する (.hgignoreなど) にチェックを入れ、 Mercurial 1.0 互換のリポジトリを作成 のチェックは外した状態で リポジトリを作成すると良いでしょう。
作成 ボタンを押すと Mercurial はプロジェクトディレクトリに .hg という名前のディレクトリを作成します。 ここには Mercurial のすべてのバージョン情報が保管され、一般に リポジトリ と呼ばれています。一方、実際のソースファイルなどが含まれているディレクトリを 作業ディレクトリ と呼びます。コマンドを実行するときこの .hg ディレクトリを指定する必要はなく、作業ディレクトリのルートを指定するだけで 大丈夫です。これは Mercurial がどのように動いているのかを理解するために 覚えておくと良いかもしれません。
警告
.hg を直接編集することはリポジトリの破損を引き起こすため危険です。 ただし .hg/hgrc のみ例外的に編集が認められています。
いよいよ Mercurial にどのファイルを管理下に置き、どのファイルを無視すべき なのかを指定します。これにはいくつものやり方があります:
ノート
.hgignore ファイルは作業ディレクトリのルートに含まれており、 通常は Mercurial のバージョン管理下に置かれています。
ノート
作業ディレクトリにたくさんの 不明 ファイルを放置したままにしないというのは、 バージョン管理下に置くべきファイルの追加し忘れを未然に防ぐという意味で よい習慣と言えます。そのため .hgignore ファイルを極力最新の状態に 保つよう努めてください。
プロジェクトディレクトリを右クリックして Hg コミット ... を 選択するか、コマンドラインから hgtk commit を実行して変更点を ローカルリポジトリにコミットします。コミットメッセージを記述し、 コミットしたいファイルにチェックを入れてから コミット ボタンを 押します。コミット後にコミットメッセージの内容やコミットしたファイルの間違いに 気付いた場合は 取り消し ボタンで直前のコミットを取り消すことが できます。入力したコミットメッセージはメッセージ履歴のドロップダウンリストに 残るため、同じメッセージを再度入力し直す必要はありません。
ノート
コミットツールを閉じてしまうと直前のコミットを 取り消し ボタンで 取り消すことは出来なくなります。
コミットツール
これであなたの成果を共有するための準備が整いました。あとはこのリポジトリを 他のメンバからも参照できる共用スペースにコピーするだけでOKです。 Mercurial ではこのコピー操作を リポジトリのクローン (cloning your repository) と呼んでいます。リポジトリを共有ドライブにするには右クリックメニューから TortoiseHg ‣ リポジトリのクローン を選択するか、 コマンドラインから hgtk clone を実行します。
クローンダイアログ
チームでコードを共有するための 中央リポジトリ に、あなたが持っている ローカルのリポジトリのような作業ディレクトリは必要ありません。 つまり、純粋にリポジトリだけあれば十分と言えます。このような場合、 クローン後に作業ディレクトリを HEAD に更新しない にチェックを入れることで Mercurial は中央リポジトリのクローンから 作業コピーをチェックアウトしません。その結果、プロジェクトのリビジョン履歴の すべてが格納されている .hg のみとなります。
他のチームメンバはこの中央リポジトリからクローンすることで作業できます。
今あなたがあるチームと共同作業を始めたいとします。彼らは X からリポジトリを取得してくれ と言っていますが、どういう意味なのでしょうか? これは、X という場所に置かれているリポジトリをローカルにクローンしてくれ、 という意味になります。Mercurial ではこれをクローン (cloning) と呼び、 TortoiseHg には専用のダイアログが用意されています。 クローンを作成したいディレクトリで右クリックメニューを開いて TortoiseHg ‣ リポジトリのクローン を選択するか コマンドラインから hgtk clone を実行してください。
クローンダイアログ
今回はこれからクローンするリポジトリの作業ディレクトリでプロジェクトの作業を するため、 クローン後に作業ディレクトリを HEAD に更新しない のチェックは外してください。これで Mercurial は作業ディレクトリを tip リビジョンに更新します。
作業ディレクトリでいくつかの変更を加えたとします。エクスプローラでいくつかの 変更が保留中であることをアイコンオーバーレイの変化から簡単に確認できます。 より詳細な変更点の確認やそれらのコミットはエクスプローラから行うことができます。 手っ取り早い方法はコミットツールを使うことです:
Windows Vista でのアイコンオーバーレイ表示
コミットツールは変更の差分を表示してくれます。もしくは普段使用している GUI の 差分表示ツール (kdiff など) を使用することもできます。 Mercurial のリポジトリは 分散型になっているため、変更点を共有リポジトリと同期 (変更点の共有) するかどうか 決める前にローカルリポジトリにコミットできます。
変更を共有リポジトリに公開する準備が整ったら、
文章にすると複雑に見えますが、実際にはコミットしてチェンジログビューアのボタンを 押すだけです。
ノート
マージ作業に失敗したとしても安全に最初からマージ作業を始めることが可能です。
Mercurial は共同作業を簡単に、素早く、効率的にします。 詳しくは Mercurial の wiki をご覧ください。