MAP | TOP > 工房「藤車」 > SCM メモ > Mercurial の利用 > extension > Grapviz extension 実行例 |
注意::
私が graphviz-hook
コマンドでの検証に重点を置いていたため、
graphviz 拡張の初期の版は
graphviz
コマンドが正しく機能していませんでした。
現版は、 Mercurial の 0.9.3 〜 0.9.5 版において動作確認を行っています。
画像とクライアントサイドイメージマップファイルの両方を、
自動的に生成する最も簡単な方法は、
graphviz-hook
コマンドを使用するものです。
本ページにある実行例と等価なこれらのファイルを生成するには、
hgrc
ファイルに以下に示すような graphviz
セクションを記述した上で、
graphviz-hook
コマンドを起動してください。
[graphviz] #### 結果格納先ファイル imagefile=%%(hgroot)s/.hg/revtree.jpg #### リビジョンを日付でグループ化する opt.group-by-date= #### 日付のグループに 'yyyy-mm-dd' 形式のラベルを描画する opt.cluster-attr-hook=lambda r, b, d: ( d and ('label="%%s-%%s-%%s"' %% (d[:-4], d[-4:-2], d[-2:]))) #### Mercurial の公式リポジトリへのリンク opt.urlbase=http://selenic.com/repo/hg #### 日時による描画対象リビジョンの制限 opt.datetime= limitspecs=2007-07-01T00:00:00,2007-07-31T99:99:99 #### 生成された DOT 言語用ソースの保存 dot_source= #### "下から上" 方向でのグラフ描画 dot_opts=-Grankdir=BT #### クライアントサイドイメージマップの同時生成 imagemap=
上記の設定での
graphviz-hook
起動は、
以下に示すコマンド起動とほぼ等価です。
% cd ${HGROOT} % hg graphviz \ --group-by-date \ --cluster-attr-hook \ "lambda r, b, d: (\ d and ('label=\"%s-%s-%s\"' % (d[:-4], d[-4:-2], d[-2:])))" \ --urlbase http://selenic.com/repo/hg \ --datetime \ 2007-07-01T00:00:00,2007-07-31T99:99:99 > .hg/revtree.dot % dot -T jpg -o .hg/revtree.jpg -Grankdir=BT .hg/revtree.dot % dot -T cmapx -o .hg/revtree.html -Grankdir=BT .hg/revtree.html
"日付グループ化"に利用される日時値は、
リポジトリのチェンジログから取得されたものを、
起動環境のローカルタイムに変換したものです。
ですので、(1) 描画対象の選択が正しくない可能性もありますし、
(2) 複数のタイムゾーンに跨る分散開発の場合は、
group-by-date
オプションになじまないかもしれません。
MAP | TOP > 工房「藤車」 > SCM メモ > Mercurial の利用 > extension > Grapviz extension 実行例 |