キーワード展開とは「$作者」みたいにソースに書いたら、チェックインしたときに「ふじはら」みたいに置き換えてくれる機能。CVSにあったのでSVNにもあるだろう。
鍋の底さんのSubversion Book翻訳のキーワード置換を参考に。
キーワード
- $LastChangedDate$
- 省略すると「$Date$」。最後にコミットされた日時。
- $LastChangedRevision$
- 省略すると「$Revision$」。最後にコミットされたときにリビジョン。
- $LastChangedBy$
- 短縮は「$Author$」。最後にコミットしたユーザ。
- $HeadURL$
- そのファイルのリポジトリのパス。
- $Id$
- 上記キーワードを全部ひっくるめたようなもの。
使い方
SVNではいきなり使えない。ファイルごとに以下の設定が必要。
# $LastChangedDate$ # $Date$ # $LastChangedRevision$ # $Revision$ # $LastChangedBy$ # $Author$ # $HeadURL$ # $Id$ Test
上のようなfujihara.txtを用意して、以下のコマンドを打つ。
repo01>svn propset svn:keywords "Date Revision Author HeadURL Id" ./fujihara.txt property 'svn:keywords' set on 'fujihara.txt'
TortoiseSVNの場合、ファイルを右クリックすれば属性というものがあるので、svn:keywordをキーに「Date Revision Author HeadURL Id」を与えればOK。
これをコミットすると以下のようになる。
# $LastChangedDate: 2008-09-20 21:19:00 +0900 (土, 20 9 2008) $ # $Date: 2008-09-20 21:19:00 +0900 (土, 20 9 2008) $ # $LastChangedRevision: 13 $ # $Revision: 13 $ # $LastChangedBy: $ # $Author: $ # $HeadURL: svn://localhost/repo01/trunk/fujihara.txt $ # $Id: fujihara.txt 13 2008-09-20 12:19:00Z $ Test
自動でキーワード展開してもらう
Unixなら「~/.subversion」が使われる。Vistaの場合、コマンドプロンプトで以下を打つと設定ファイルの場所がわかる。
C:\Users\svntest>echo %APPDATA% C:\Users\svntest\AppData\Roaming
ディレクトリを見てみると、Subversionというフォルダがあり、設定はconfigファイルになるらしい。ここで以下の設定を行う。
[miscellany] enable-auto-props = yes [auto-props] *.txt = svn:keywords=Date Revision Author HeadURL Id
これでdai.txtを作って「$Date$」とか設定すると、コミットすれば自動で属性が設定された。でも、これってClientごとにやれってことだよなー。。。サーバで設定でないが残念。