svn用户定义的属性关键字扩展/替换

时间:2013-08-26 14:56:22

标签: svn properties replace keyword substitution

我想在源文件中扩展/替换我定义的属性。如果在文件中我可以使用通常的CVS关键字扩展语法,那将是很好的:

svn propset svn:keywords "Date Revision" "S:\Source\myfile.js"

svn propset Originator "me@gmail.com" "S:\Source\myfile.js"

在此档案中:

// This is myfile.js
// $Date$
// $Revision$
// $Originator$

收率:

// This is myfile.js
// $Date: 2013-08-25 11:22:33 -0600 (Sun, 25 Aug 2013) $
// $Revision: 78 $
// $Originator: me@gmail.com $

我猜测某种提交或提交后触发/动作可以处理这个问题(svn gnubie)。复杂性可能是因为我正在使用Google Projects。 注意:我知道$ Author $。 $ Originator $只是我想要做的一个例子。

TIA

2 个答案:

答案 0 :(得分:0)

如果你想在Subversion中使用自定义关键字,你必须使用SVN 1.8。* - 除了旧的“经典”svn:keywords之外,这个版本还增加了定义新关键字的可能性。但是,无论如何,这些关键字仍然不能完全自由形式^你的关键字定义必须用有限的基元构造。

来自svn help propset

  Custom keywords can be defined with a format string separated from
  the keyword name with '='. Valid format substitutions are:
    %a   - The author of the revision given by %r.
    %b   - The basename of the URL of the file.
    %d   - Short format of the date of the revision given by %r.
    %D   - Long format of the date of the revision given by %r.
    %P   - The file's path, relative to the repository root.
    %r   - The number of the revision which last changed the file.
    %R   - The URL to the root of the repository.
    %u   - The URL of the file.
    %_   - A space (keyword definitions cannot contain a literal space).
    %%   - A literal '%'.
    %H   - Equivalent to %P%_%r%_%d%_%a.
    %I   - Equivalent to %b%_%r%_%d%_%a.

即,您可能会遇到构建Originator(以上述形式)的问题 - 用户的电子邮件从未直接存储或引用,但可能会定义和使用其他一些关键字

答案 1 :(得分:0)

尝试简单:

svn propset svn:keywords "Date Revision Originator=me@gmail.com" "S:\Source\myfile.js"

设置此属性后不要忘记提交文件!

(使用Tortoise SVN 1.8.11测试)