2

リビジョン番号を自動的に埋め込みたいプロジェクトがあります。

この場合、これは複数ファイルの perl スクリプトです。メイン ファイルには、次のような行があります。

私の $revision = '$Revision: 24 $';

リリースを作成するときは、プロジェクトをリリース ディレクトリにチェックアウトします。

そのファイルへの変更をチェックインするたびに、リビジョン番号が変更されます。$Revision$ 属性はチェックイン時に更新されますが、チェックアウト時には更新されません。

問題は、メイン ファイルはそれほど頻繁に変更されないため、プロジェクト内の他のファイルが現在 27 であっても、メイン ファイルはまだ 24 です。

メインファイルに最新のリビジョン番号を反映させる方法はありますか? チェックアウトの最後に svn が出力するもの、つまり「リビジョン 27 をチェックアウトしました」。

4

2 に答える 2

2

これは CVS に似ています。$Revision$ を使用できます。そのファイルのキーワード プロパティを設定するだけで、SVN がキーワード置換を実行することになっていることがわかります。

マニュアルから:

"そのファイルに svn:keywords プロパティが設定されていない場合、Subversion は特別なことは何もしません。では、LastChangedDate キーワードの置換を有効にしましょう。 $ svn propset svn:keywords "Date Author" weather.txt property 'svn:keywords' set on ' weather.txt' $ "

http://svnbook.red-bean.com/en/1.5/svn-book.pdf

于 2009-03-06T22:36:30.367 に答える
1
if (! -e '.version')
{
    open VERSION, '>.version';
    print VERSION `svnversion -n | cut -f1 -d:`;
    close VERSION;
}

my $revision = '$Revision: ' . `cat .version` . ' $';

(注:このコードをそのまま使用すると、子犬が死んでしまいます)

于 2009-03-06T22:34:41.480 に答える