我正在开发一个项目,它在同一个svn repo中存储多个版本但在不同的目录中。为了便于参与项目的编码人员,我希望能够添加一个评论标签,类似于
# $Revision: 144 $
但是,它应该包含一个简单的版本号,而不是文件版本:
# $Version: 1.63 $
# $Version: 1.64 $
# $Version: 2.0 $
有没有办法让subversion自动为特定目录和所有子目录以及添加到这些目录的任何新文件执行此操作?
答案 0 :(得分:6)
答案 1 :(得分:0)
您可以使用propedit添加任意属性,例如:
svn propedit my:version path/to/dir`
但是我不确定如何在co
或commit
期间填充评论。 (它甚至可能神奇地发生 - 我从未尝试过)。
答案 2 :(得分:0)
听起来好像你想根据上次修改的时间更改Perl模块的版本号,例如
our $VERSION = '1.2.12345';
...其中12345是上一次更改模块的svn修订号。
您可以在代码中使用$Revision$
关键字来执行此操作,并结合一点Perl替换魔法来提取整数:
package My::Module;
my $revision_str = '$Revision$'; # will be transformed to '$Revision: xxxxx $'
(our $VERSION = $revision_str) =~ s/^\$Revision: (\d+) \$$/1.2.$1/;
$ svn propset svn:keywords "Revision" My/Module.pm property 'svn:keywords' set on 'My/Module.pm' $ svn commit My/Module.pm -m'adding svn:keywords property' Committed revision 12345. $ perl -I. -MMy::Module -wle'print $My::Module::VERSION' 1.2.12345
(有关svn:keywords属性的更多信息,请参阅"Special Keywords"下的文档。)