hg log の出力をもうちょっといい感じに整形する
Feb とか Fri とかわかんない
いまのところこんなかんじの .hgrc をつかっていて、あまり不自由はなかった。
[ui] username = atasatamatara editor = vim [extensions] color = graphlog = pager = [color] status.modified = magenta bold status.added = green bold status.removed = red bold status.deleted = cyan bold status.unknown = blue bold status.ignored = black bold diff.diffline = bold diff.extended = cyan bold diff.file_a = red bold diff.file_b = green bold diff.hunk = magenta diff.deleted = red diff.inserted = green diff.changed = white diff.trailingwhitespace = bold red_background [pager] pager = LESS='FSRX' less %include ~/.hgrc.local
だいたいいいんだけど、hg log とか hg glog したときに日付のフォーマットが Fri, 2013, みたいなそういう形式なのがちょっと嫌でどうにか整形できないかと思った。考えてみれば mercurial なんだし python で、 datetime を strftime すればいいんじゃね?と思って調べた。GUI ツール使えってのもいいが、おれは CUI で完結させるほうが好きなんです。
style と template についての資料
hg log --template {string} か、そのテンプレートになったファイル hg log --style {PATH} でできる。具体的な参考資料は以下。
style について Chapter 11. Customizing the output of Mercurial
template の設定サンプル mercurialのstyleを使用してlog出力をカスタマイズする - yuitowest's blog
具体的な設定の公式資料は hg help templating で確認できる。
また、具体的な設定項目についての日本語訳してくれているものがある。 11 Customising the output of Mercurial
色設定について
以下を参考にした。
bash/zshで16色(ANSI カラーコード)と256色のカラーパレットを表示 - よんちゅBlog
.hgrc で読み込ませる設定について
[ui] style = path/to/mystyle
自分がやった具体的な設定
最終的にこんな感じになった
changeset = '\033[0;33mchengeset : {rev}:{node|short} {tags}\033[0m\nsummary : {desc|firstline|strip}\nuser : {author}\nbranch : {branch}\ndate : {date|isodate} : {date|age}\n{file_adds}\n{file_dels}\n{file_mods}\n\n' start_file_adds = '\n' file_add = '\033[0;31mA {file_add}\033[0m\n' # end_file_adds = '' # start_file_dels = '' file_del = '\033[0;31mR {file_del}\033[0m\n' # end_file_dels = '' # start_file_mods = '' file_mod = '\033[0;35mM {file_mod}\033[0m\n' # end_file_mods = ''
とりあえず日時フォーマットを {date|isodate}して {date|age}そのコミットが何時間前かの表示を追加、branch も常に表示するようにした。ついでにファイルの add, remove, modified したのも表示されるようにした。どのファイルが更新されるかみれるというのは、誰がどのブランチでどのファイルを触ったかがわかりやすくて動きが見えやすくていい。そのかわり気持ちちょっと重くなった。hg log --limit 10 とかしてもかわらない。まあ、気持ちの問題としていまはまあいいやという。
まあ
GUI ツールつかえば簡単かもだけど、自分としてはかねがね満足。もうすこしいえば diff まわりでもっと簡単に楽にみれるようにしたいけど、まあ、いまはいいや。
ここまでかいたけど
hgview って git の tig みたいなものもあるんですね……