Developer's Blog

分散バージョン管理システムのすすめ その3


こんにちは、Sleipnir 3 for Windows 開発担当の森本です。

今回は、具体的に Mercurial を使用する方法を解説していきます。

まず最初に何をすればいいの?


まず、ソースがあるフォルダに移動します。


そこで Repository を作成します。 .hg フォルダなどが生成され、フォルダに緑のチェックマークがつけば OK です。( エクスプローラなら フォルダを右クリック | TortoiseHG | リポジトリの作成、 コマンドラインなら hg init )


バージョン管理したいファイルを Repository に Add していきます。Add されたファイルには + マークがつきます。( 右クリック | TortoiseHG | 追加、hg add [ファイル名])


Commit してみます。Repository と差分がないファイルは緑のチェックマークが付きます。( 右クリック | TortoiseHG | hg コミット、hg commit )


ファイルを編集すると、赤い ! マークが付き、ファイルを変更したことが一目でわかります。そして、Commit すると再び緑のマークに戻ります。


編集と Commit を何度か繰り返し、ログを表示してみます。( 右クリック | TortoiseHG | hg WorkBench、hg log)


てきとうに昔の Revision に戻してみます。( WorkBench で対象を右クリック | 特定のリビジョンに更新、hg update [リビジョン番号])


ここでコミットするとブランチが出来ます。( 右クリック | TortoiseHG | hg コミット、hg commit )


古い方のブランチとマージしてみます。同じファイルの同じ場所を編集していなければ、すんなりいけます。( WorkBench で対象を右クリック | ローカルとマージ、hg merge [リビジョン番号])
同じファイルの同じ場所を編集していた場合は、マージツールを使って手で修正する必要が出てきます。

こんな感じでいろいろいじってみると理解しやすいと思います。

Mercurial 導入時に躓きやすいポイントと回避方法

日本語のファイル名が使用したい/文字化けする
 → Windows のみなら win32mbcs エクステンションで OK 。OS 混在なら… 今のところ上手い方法がないです。Sleipnir の開発では日本語ファイル名は使用していない方針でしのいでいます。

http で見るとソースコードが文字化けしている
 → コードを UTF-8 に変換すれば OK。 VisualStudio では BOM が必要な点に注意。

よく考えたらこのコミット不要だった!リビジョン消したい!
 → mq エクステンションを入れると、右クリック | 履歴を修正 | Strip で消せるようになります。

 

運用方法について

・”分散”バージョン管理なのに”中央”サーバーが必要か?
・リポジトリ間では pull すべきか、push すべきか?
・マージ専門の担当者が必要か?

中央サーバーは必須ではないですが、あると便利なので Sleipnir 3 for Windows の開発では中央サーバーを用意し、全員が必要に応じて push する方法で運用しています。

これは、中央サーバがあると、誰がどのコミットを持っているのか、を一々確認しなくても常に最新の状態が一カ所に集まっているので管理が容易、と言うのが理由です。

このとき、メンバー間の力量に差がある場合、push 出来る人を限定すべきですし、さらに力量差が激しかったり、常に安定動作する状態を維持しなければならない場合は、マージ担当がメンバーから pull して回る運用の方が良さそうです。

 

以上、3回 連続で Mercurial の使い方を説明してきましたが、全体の結論としては、

Mercurial は便利で信頼できるので一度お試しあれ

というお話でした。

Copyright © 2019 Fenrir Inc. All rights reserved.