2009-08-31 22 views
2

バージョン管理製品には、リポジトリからチェックアウトされたときに興味深い値をファイルに埋め込む方法があります。通常、ソースファイルにいくつかのマジックストリングを入れ、チェックアウト時に更新されます。同様に、 "$ revision = xxx"と書いて、リビジョン832をチェックアウトすると、 "$ revision = 832"に変更されます。 SVNにはこのような機能がありますか、おそらくプロパティを使用していますか?SVNの動的埋め込みフィールド?

答えて

4

あなたはkeyword substitutionの後にいると思います。

+0

ああ、時には簡単な答えがあります。私はドキュメントを検索しましたが、私はちょうど検索する正しいキーワード(馬鹿を意図していない)を考えることができませんでした。 – Jay

2

はい、赤玉の説明書keyword substitutionは信頼できますが、ここでは簡単な説明をしています。 foo.plで

:次に

# Nifty perl trick to get just number and not "$Revision:" string. 
our $revision = '1.0-' . qw$Revision: 0 $ [1]; 

実行します。

svn propset 'svn:keywords' 'Revision' foo.pl 

はすべてあなたのperlの文書は自動小道具に見て、拡大$リビジョン$が必要な場合は。あなたの〜/ .ssh/configファイル内

セット:

enable-auto-props = true 
*.pl = svn:eol-style=native;svn:executable;svn:keywords=Id LastChangedBy LastChangedRevision Revision Author 

(ここで、私も作ったことを確認するperlスクリプトが実行可能であり、ユーザーがLinux上でチェックアウトすることができますので、EOL形式が正しいですか、 Windows版、Mac版のいずれにも対応しています。Revisionに加えて、よく使われるキーワードが含まれています)

これは、TortoiseSVNのようなWindowsクライアントでも機能します(設定ページでは、 )。

自動小道具の最大の欠点はユーザーごとです。そのため、すべてのコミッターは一貫した設定が必要です。将来のバージョンでは、レポごとの設定を許可するという話があります。

〜J

関連する問題