無料Wikiサービス | デモページ
Linuxなどのメモ書き

Subversion キーワードの展開


概要

SubversionではCVSと同様にソースコード中に$Date$,$Rev$などの特定キーワードを埋め込んでおき、commit時にキーワードを置換させることでcommit日付、Rev情報などをソースに自動で埋め込むことができる。使用できるキーワードを表1に示す。

表1 使用できるキーワード
キーワード
説明
Date
commit日付
置換例:$Date: 2006-08-09 13:15:41 +0900 (Wed, 09  Aug 2006) $
Revision
commitした時のリポジトリのRevision
置換例:$Rev: 38 $
Author
commitしたユーザー名
置換例:$Author: tomita $
HeadURL
ファイルのURL
置換例:$HeadURL: http://svn.xxxx.xxx/Repos/trunk/foo.c $
Id
ファイル名、Rev、日付、ユーザー名を組み合わせた形式
置換例:$Id: foo.c 38 2006-08-09 13:15:41 tomita $
ソース中に埋め込む場合は、$Date$のように'$'で囲んで使用する。

実際に使う

CVSではキーワードをソースコードに埋め込めば自動的に置換されたが、Subversionではどのキーワードを置換するかあらかじめファイルごとに指定しておく必要がある。これは、各ファイルのsvn:keywords属性に設定する。

foo.cにDate,Author,Revの置換をするように設定したい場合は以下のようにする。

# svn propset svn:keywords "Date Author Rev" foo.c

設定内容の確認は以下のようにしてできる。

# svn propget svn:keywords foo.c
Date Author Rev

以上のようにsvn:keywordsを設定しておけばcommit時にキーワードが置換されるようになる。

例えば以下のファイルをcommitすると、

/*
 * $Date$
 * $Rev$
 * $Author$
 */
以下のように置換される。
/*
 * $Date: 2006-08-09 13:15:41 +0900 (Wed, 09  Aug 2006) $
 * $Rev: 38 $
 * $Author: tomita $
 */

自動でおこなうには

上記のようにファイルをimport/addする度にsvn:keywordsを手動で設定するのは面倒なので、import/add時に自動的にsvn:keywordsが設定されるようにする。

これには~/.subversion/configファイルを修正する。修正箇所は以下の2点。

  • enable-auto-propsをyesにする。(これにより、同ファイル内の[auto-props]セクションが有効になる)
  • [auto-props]セクションにpropsetの内容を記述する。
enable-auto-props = yes

### Section for configuring automatic properties.
[auto-props]
*.c = svn:keywords=Date Author Rev
<== *.cファイルをimport/addした時に自動で
svn propset svn:keywords="Date Author Rev"
をするようになる。 


最終更新 2007/06/18 21:49:27 - kztomita
(2006/08/09 13:31:33 作成)