在每次提交时在特定文件上应用subversion自动道具

时间:2012-02-07 21:35:49

标签: svn automatic-properties

是否可以在某个文件的每次提交中应用subversion自动道具(即使它没有被修改)?

我问的原因是我正在处理一个应用程序,该应用程序在一个源文件中包含一个版本字符串(实际上是一个常量),我想在每次提交时更新,这样修订和日期会自动更新。

该文件大多数时间都没有更改,因为它只包含版本信息!我想要一种方法在每次提交的某个文件上应用svn关键字。

感谢目前为止的答案,但是到目前为止,既没有搜索SE也没有阅读手册对我有帮助。我当前使用的解决方案是包含在存储库中的自定义提交脚本,程序员应该使用它来提交(它只是包装svn提交并更改要更新的文件中的注释中的单个位) 。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

在此处阅读或搜索 SVN关键字

答案 1 :(得分:1)

以下是keywords的具体文档。

让我们假设我们在版本控制中已经有文件a

test zacharyyoung$ ls -l
-rw-r--r--   1 zacharyyoung  staff    64 Feb  7 20:39 a

我们要将$Rev$$Date$个关键字添加到文件

test zacharyyoung$ echo '$Date$' > test/a
test zacharyyoung$ echo '$Rev$' >> test/a
test zacharyyoung$ cat test/a
$Date$
$Rev$

告诉SVN要查找哪些关键字以进行查找和替换,并提交:

test zacharyyoung$ svn propset svn:keywords "Date Rev" a
property 'svn:keywords' set on 'a'
test zacharyyoung$ svn ci a -m "1. Added keywords."
Sending        a

Committed revision 2.

提交a后,我们检查其内容:

test zacharyyoung$ cat a
$Date: 2012-02-07 20:39:42 -0800 (Tue, 07 Feb 2012) $
$Rev: 2 $

现在,我们将向a添加另一行,提交并再次检查其内容:

test zacharyyoung$ echo Another line >> a
test zacharyyoung$ svn ci a -m "1. Added another line."
Sending        a
Transmitting file data .
Committed revision 3.
test zacharyyoung$ cat a
$Date: 2012-02-07 20:46:11 -0800 (Tue, 07 Feb 2012) $
$Rev: 3 $
Another line