2014年1月24日金曜日

Windowsネイティブ版のMercurialをちょっといい感じに使う設定を考えてみた。

Windowsネイティブ版のMercurialをそこそこ快適に使うための設定に悩んでました。
それっぽい設定が出来た気がするので晒しておきます。


要件っぽいもの


個人的になんとなく快適に使うのに必要な要件はこれくらい。
  • カラー表示に対応
  • ページャに対応
  • hg logが文字化けしない
  • UTF-8のファイルのhg diffが文字化けしない
  • Gitっぽくrebaseとかstash(Mercurialだとshelve)もしたい
  • SSHも使える
  • TortoiseHgは使わない
  • コマンドプロンプト使う
  • 日本語ファイル名とか使わないので気にしない


必要なモジュールとか


Mercurial 2.8だとtextful extensionだけはモジュール取得しておく必要がある。
2.7以前だとshelveとかも取得しておかないといけないかもしれない。
  • color extension
  • pager extension
  • textful extension (https://bitbucket.org/yuja/hgext-textful)
  • graphlog extension
  • extdiff extension
  • mq extension
  • shelve extension
  • rebase exntesion
  • histedit extension
  • Kaoriya版Vim(UTF-8が扱える好きなエディタで良いと思う。)
  • WinMerge日本語版(外部ツールでdiff見る用。好きなもので良いと思う。)
  • msysGit(sshとlessを使う。色々試したけどlessはこれが一番良かった気がする。)


設定


環境変数HGENCODINGutf-8を設定する。
(環境変数HOMEにUSERPROFILEと同じ値を設定しておいた方が良いかもしれない。)
以下はMercurial.iniの設定例。
パスとかは適宜読み替えてください。
[ui]
username = Your Name <email@example.com>
editor = C:\tools\vim74-kaoriya-win64\vim.exe
ssh = "C:\Program Files (x86)\Git\bin\ssh.exe"

[extensions]
graphlog =
color =
mq =
rebase =
histedit =
shelve =
pager =
extdiff =
textful = C:\tools\hgext\hgext-textful\hgext\textful
textful.encoding = C:\tools\hgext\hgext-textful\hgext\textful\encoding.py
textful.msexcel = C:\tools\hgext\hgext-textful\hgext\textful\msexcel.py
textful.pipe = C:\tools\hgext\hgext-textful\hgext\textful\pipe.py

[color]
mode = ansi

[pager]
pager = "C:\Program Files (x86)\Git\bin\less.exe" -FRXr
quiet = True
attend = annotate, cat, diff, export, glog, log, qdiff, status, heads, incoming, outgoing, shelve

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

[textful]
encoding = utf-8, euc-jp, cp932, iso-2022-jp
attend = annotate, cat, diff, glog, log, qdiff, status, heads, incoming, outgoing
pipe.doc = antiword -w0 $<


まとめ的な


これくらい設定しておくと必要な要件はだいたい満たせると思う。
いまのところは特に問題なさそうな感じで使えています。
なんか間違っているところとか、もっとこうしたほうが良いとかあったら教えてください。

0 件のコメント:

コメントを投稿