某些版本控制产品可以将感兴趣的值嵌入到文件中,因为它是从存储库中检出的。通常你在源文件中放入一些魔术字符串,并在结帐时更新。就像你写的“$ revision = xxx”一样,如果你签出修订版832,它会变成“$ revision = 832”。 SVN是否有这样的功能,可能使用属性?SVN中的动态嵌入字段?
2
A
回答
4
你在keyword substitution之后,我想。
2
是的,REDBERD书的描述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脚本是可执行的,和EOL风格是正确的,因此用户可以在Linux上结帐, Windows或Mac,没有问题,除了修订版,我还包括了我最常用的关键字。)
这甚至适用于像TortoiseSVN这样的Windows客户端(请参阅设置页面中的按钮,它将在编辑器中打开配置文件)。
自动道具最大的缺点 - 它们是每个用户,所以所有提交者必须具有一致的设置。在未来的版本中有一些关于允许per-repo配置的讨论。
〜J
啊,有时候会有一个简单的答案。我搜索了文档,但我无法想出正确的关键字(无双关语)来搜索。 – Jay 2009-08-31 16:17:49