hgext.keyword にごちうい

hgext.keywordを有効化して おいたのだが、取扱注意、という話。

yatexをMercurial化するついでに自分用emacs-lispディレクトリも rsyncじゃなくてhgで同期取ろうとRCSとの共存で hg init したのだが、 hgext.keyword を入れたまま突っこんじゃうと Mercurial の ノードIdで上書きされちゃうのね。ってかそのためのモジュールだもん。

xcite.el とかは RCSid を defconst に入れてプログラム中で使っていたのだが、 これが空っぽになっちゃった。あぶね。すくなくとも $Id$ はよく使っているので、$Id$ というキーワードは隔離した方がいいな。 とりあえず ~/.hgrc では、このくらいにしておこう。

[keyword]
* =
*,v = ignore
[keywordmaps]
Date = {date|rfc822date}
HGid = {file|basename},v {node|short} {date|utcdate} {author|user}

$HGid$ を明示的に書かない限り展開されない、って方が安全か。 hgでしか管理しないモジュールができたらそのディレクトリの ./.hg/hgrc

[keywordmaps]
Id = {file|basename},v {node|short} {date|isodate} {author|user}

とか書いた方が良さそうだな。 お、rfc822dateよりisodateのほうが短いな。 site-packages/mercurial/templatefilters.py 見ると色々わかる。