如何在代码中获得更新的$ Revision $

时间:2009-03-06 22:21:23

标签: svn keyword-substitution

我有一个项目,我想自动嵌入修订号。

在这种情况下,它是一个多文件perl脚本。在主文件中,我有一行如下所示:

my $ revision ='$ Revision:24 $';

当我发布时,我会将项目签出到我的发布目录。

每当我签入对该文件的更改时,修订号都会发生变化。 $ Revision $属性在办理登机手续时更新,但不会退房。

问题是,主文件经常不会改变,所以即使项目中的其他文件现在为27,主要文件仍然有24个。

有没有办法可以让主文件反映最新的转速? svn在结账时打印出来的那个,即“Checked out revision 27。”

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

if (! -e '.version')
{
    open VERSION, '>.version';
    print VERSION `svnversion -n | cut -f1 -d:`;
    close VERSION;
}

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

注意:如果按原样使用此代码,小狗将会死亡)