Windows+TortoiseHgで始めるMercurial(設定編)
ちょっとMercurialのHowToを書く必要が出てきたので書いてみる。
この記事は1.1.xを基準にしていて古いので、2.x対応版に書きなおした。
- 設定 => 2.x版はこちら
- hgコマンドをTortoiseHgで => 2.x版はこちら
- ブランチ・リポジトリ間の連携 => 2.x版はこちら
- 間違えたときのやり直し => 2.x版はこちら
- bitbucketの使い方 =>2.x版はこちら
TortoiseHgとは何か?
MercurialのGUIツールです。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 =