Subversion キーワードの展開
概要
SubversionではCVSと同様にソースコード中に$Date$,$Rev$などの特定キーワードを埋め込んでおき、commit時にキーワードを置換させることでcommit日付、Rev情報などをソースに自動で埋め込むことができる。使用できるキーワードを表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 $ |
実際に使う
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" をするようになる。