Windows+TortoiseHgで始めるMercurial(設定編)

ちょっとMercurialのHowToを書く必要が出てきたので書いてみる。

この記事は1.1.xを基準にしていて古いので、2.x対応版に書きなおした。

  1. 設定 => 2.x版はこちら
  2. hgコマンドをTortoiseHgで => 2.x版はこちら
  3. ブランチ・リポジトリ間の連携 => 2.x版はこちら
  4. 間違えたときのやり直し => 2.x版はこちら
  5. bitbucketの使い方 =>2.x版はこちら

TortoiseHgとは何か?

MercurialGUIツールです。Windows標準のファイラーであるエクスプローラを拡張して、GUIでバージョン管理が出来るようにしてくれます。
同時にhgコマンドも使えるようにしてくれるので、Mercurialをインストールするよりお勧めです。

 ダウンロードはこちらから -> TortoiseHg
 現在の最新版は tortoisehg-1.1.9.1-hg-1.7.5-x86.msi です。

 

TortoiseHgのインストール

 

基本的にデフォルトインストールで構いません。エクスプローラ上で右クリックして、TortoiseHgと表示されたら成功です。
※1.1.8からメニューが自動的に日本語化されるようになりました。(参照)LANG環境変数なしで言語環境を検出してくれるようになったので、LANG環境変数の設定は必要ありません。

フォント設定の変更

インストールした状態だと、ログビューアのコミットログ表示部分の日本語部分が残念なことになります。

TortoiseHg(Mecrurial)は次のファイルに設定を保存します。

%USERPROFILE%\mercurial.ini

ここに以下のようにフォントを設定します(メイリオの場合)。

[gtools]
fontcomment = メイリオ 10
fontdiff = メイリオ 10
fontlist = メイリオ 9

以下のように設定したフォントでログビューアが表示されたら成功です。

マージツールの設定

標準ツールkdiffでもマージできますが、WinMerge 日本語版の方が使いやすいので設定しておきましょう。mercurial.iniに以下の設定を追加してください。

[merge-tools]
winmergeu.args=/e /ub /dl other /dr local $other $local $output
winmergeu.regkey=Software\Thingamahoochie\WinMerge
winmergeu.regname=Executable
winmergeu.fixeol=True
winmergeu.checkchanged=True
winmergeu.gui=True

[extdiff]
cmd.wmdiff = C:\Program Files\WinMerge\WinMergeU.exe
opts.wmdiff = /r /e /x /ub

[ui]
merge = winmergeu

[tortoisehg]
vdiff = wmdiff

次にTortoiseHgのグローバル設定を変更します。(エクスプローラ右クリック -> TortoiseHg -> グローバル設定)

以下のように設定してください。

  • 「3-way マージツール」=「winmergeu」
  • GUI差分表示ツール」=「wmdiff」

win32mbcsの設定

Mercurialは非常に使いやすいVCSですが、日本語ファイルパスの扱いだけはdisられています。
なぜかと言うと、Mercurialはファイルパスをバイナリで格納するため、日本語Windowsで格納した日本語ファイルをLinuxで取り出せません。逆も同じです。日本語WindowsでファイルパスはShiftJISでエンコードされ、LinuxではUTF8でエンコードされるからです。また、ShiftJISには0x5C問題があり、Mercurialは正しくパスを格納できません。
ただ、Windows環境だけに限定するなら回避策があり、win32mbcs拡張を有効にすることで問題なくなります。

win32mbcsを有効にするためには、mercurial.iniに次の設定を追加します。

[extensions]
win32mbcs = 

あるいはTortoiseHgのグローバル設定で、Extensions設定からwin32mbcsにチェックします。

プロキシ設定

プロキシもTortoiseHgのグローバル設定で設定できます。