バージョン管理システムを使ってみよう(Mercurial, TortoiseHg編)

さて、以上でTortoiseHgの準備は出来ました。
続いて、簡単なテキストファイルで、バージョン管理操作の例をお見せします。
ここでは

  • リポジトリの作成(バージョン管理するフォルダを設定する)
  • コミット(新しいバージョンの内容をシステムに登録する)
  • リバート(古いバージョンの内容に戻す)
  • ブランチ分け(古いバージョンをもとに別のバージョン違いを作成する)

を扱います。実際には、Mercurialは分かれたブランチを統合するマージ機能なども充実しているそうですが、ここでは割愛します。

バージョン管理の要りそうな文書というと、報告書、論文、小説などでしょうか?
プログラムソースでなくても、結構便利だと思いますヨ。

(1)リポジトリを作成する



↑何か、フォルダを新しく作成し、で右クリックします。
「TortoiseHg」を選択し、「ここにリポジトリを作成」をクリックします。




↑設定確認ダイヤログが出ますので「OK」を押します。



↑確認画面が出ますので「OK」を押します。

(2)何かファイルを作る/コピーする

何か、新しいファイルやフォルダを作ってみます。コピーしてきても構いません。



↑ここでは例えばこんな内容のsample.txtを作ってみます。

(3)用意したファイルやフォルダを追加する



↑用意したファイルを選択し、右クリックして「TortoiseHg」を選択し、「追加」をクリックします。



↑「追加」ボタンをクリックします。

(4)コミットする(バージョン管理システムに現在のバージョンの内容を登録する)


↑こんな風に、「追加」したファイルに青いプラスマークが付いているはずです。
その状態でフォルダ内で右クリックして、「Hgコミット」をクリックします。



↑このような画面が出ますので、枠の中に、このバージョンの更新内容についてメモを書いてください。また、もしこの画面のように左の欄に「.hgignore」というファイル名が表示されている場合、このファイルは(TurtoiseHgのシステムファイルですので)今後登録に含めないようにするため、次の処理も追加で行います。



↑「.hgignore」を右クリックして、「Ignore」を選択します。



↑右上の「追加」ボタンを押すと、「Untracked Files」にあった「.hgignore」が消え、代わりに「Ignore Filter」欄に「.hginore」ファイルを無視するためのルールが追加されます。この状態で右下の「Close」ボタンを押します。



↑「コミット」ボタンを押します。



↑もし間違えてコミットボタンを押してしまった場合は、「Undo」ボタンを押します。そうでなければ「Close」ボタンを押します。以上でコミット(現バージョンをバージョン管理システムに登録する)は終了です。

(5)さらに更新してコミットしてみよう

さらに、先ほどのファイルの中身を書き換えて更新してみましょう。もちろん、何か新しいファイルを追加してもかまいません。(追加の場合は、「追加」の操作も忘れずに行ってください。)



↑こんな風に続きを書いてみました。



↑そうすると、ファイルの表示が赤い「!」マークに変わっているはずです。



↑先ほどと同様にコミット操作をしてください。(今度はIgnoreの操作は不要です。)
「コミット」ボタンを押すと、先ほど同様「Undo」するかどうか聞いてきますので、「Close」を押します。

(6)バージョン管理の様子を確認する


バージョン管理の様子を確認するには、Hgワークベンチを使います。



↑フォルダ内で右クリックして、「Hgワークベンチ」を選択します。



↑すると、このような画面が表示されます。中央の一覧に、更新履歴が下から順に上へ記されています。
一番上が、現在のフォルダの状態です。

(7)内容を、バージョン管理システムに登録してある内容で復元する

たとえばこの時点で、2回目のコミットでの更新内容をやめ、1回目の状態に復元してみます。

Hgワークベンチを開きます。



↑さかのぼりたい先のバージョンの履歴を選択し、右クリックして「特定のリビジョンへ更新」を選択します。



↑「更新」を押します。


これで、フォルダの中身が古い最初のバージョンの状態に戻りました。ファイルの中身ももとに戻されています。
Hgワークベンチでは次のように表示されます。



↑リストのところの左の更新状況を表す「グラフ」が枝分かれしたことが分かります。


このまま、またファイル内容を更新してコミットを行えば、この左側の枝が伸びていくことになります。



↑たとえばこんな風になります。


以上でローカルで単体で使用することができるようになりました。