トップ «前の日記(2006-12-09 (Sat)) 最新 次の日記(2007-01-18 (Thu))» 編集 RSS feed

継続にっき

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
2017|09|

2007-01-06 (Sat)

))) /etcのバージョン管理 with Mercurial

CVSによるオープンソース開発にも話題が出てるけど、 実際にやってるって話をとんと聞かない/etcのバージョン管理。これをMercurialを使って試してみた。

この用途にCVSやSubversionではなくMercurialを使うメリットは少なくとも2つ考えられる。

  • cd /etc;hg init で用意が完了する。最初のimportとcheckoutがいらないので導入コストが低い。
  • 管理ディレクトリがトップディレクトリ中の.hgのみしかないのでアクセスコントロールが楽。CVSなどはサブディレクトリごとに管理ディレクトリを作成する。

試してないけど、サーバ間で変更の同期を取るのにも使えるかも。

))) hg logでsummaryではなくdescriptionを出力する

で、初めて本格的にMercurialを使い始めたのだけど、いろいろカスタマイズしたいところが出てきた。

標準のhg logの出力は次のような形で、コミットメッセージはそのsummary(=1行目)が出力される。 つまり、コミットメッセージが複数行に渡る時はそのすべてを確認することが出来ない。

changeset:   3:b9d48fc01c60
user:        User <user@example.com>
date:        Thu Jan 05 21:00:27 2007 +0900
summary:     commit message line1.

-vオプションを使うというのも一つの手だけど、もう少し柔軟に何とかならないものかと調べてみると--styleオプションが使えそうだということが分かった。

hg log [OPTION]... [FILE]
options:
     --style           display using template map file

オリジナルのテンプレートはDebianの場合/usr/share/mercurial/templates/map-cmdline.defaultにあるのでそいつをカスタマイズして使えばいいみたい。

# mkdir ~/.hg
# cp /usr/share/mercurial/templates/map-cmdline.default ~/.hg/map-cmdline.custom
# vi ~/.hg/map-cmdline.custom

-changeset = 'changeset:   {rev}:{node|short}\n ... summary:     {desc|firstline}\n\n'
+changeset = 'changeset:   {rev}:{node|short}\n ... description:\n{desc|strip}\n\n'

# cd /etc
# hg log --style ~/.hg/map-cmdline.custom

 changeset:   3:b9d48fc01c60
 user:        User <user@example.com>
 date:        Thu Jan 05 21:00:27 2007 +0900
 description:
 commit message line1.
 commit message line2.

うん、出来た。標準でこのフォーマットを使いたいなら次のようにする。

# vi ~/.hgrc

 [defaults]
 log = --style /root/.hg/map-cmdline.custom

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
2017|09|
トップ «前の日記(2006-12-09 (Sat)) 最新 次の日記(2007-01-18 (Thu))» 編集 RSS feed