为什么$ Id $有时不会在SVN中扩展?

时间:2009-02-23 23:06:21

标签: svn

我正在开发一个项目,我们正在积极使用subversion生成的$Id$字符串来编写文档中的版本号。例如,我们解析此字符串

$Id: filename 999 2009-02-23 22:51:29Z author $

并在文档标题页中打印“999”。

但是,在提交之后,不时地删除信息,我们只剩下

$Id$ 

这显然会破坏一些事情。有谁知道为什么会发生这种情况?


好的,明显的答案是正确的;不再为该文件设置svn:keywords。但我发誓他们曾经是!知道如何/为什么svn:keywords会从文件中清除而没有人注意到/有意做任何事情?

5 个答案:

答案 0 :(得分:11)

可能无法在该文件上正确设置svn:keywords属性。您需要将其设置为(至少)'Id':

svn ps svn:keywords 'Id' filename.txt

答案 1 :(得分:7)

确保您的文件是UTF-8而不是Unicode。由于SVN认为这些不是文本文件,因此Unicode不会扩展...我使用记事本另存为UTF-8来解决问题

答案 2 :(得分:2)

如果定义了'svn:keywords'属性,则仅在结帐时展开关键字。使用ViewSVN等存储库浏览工具时,不应扩展它们,即。它们显示为$ Id $。

答案 3 :(得分:2)

您选择的答案是正确的。您还可以设置自动道具以自动启用关键字属性。见http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.4

当你完成后,偶尔可以从http://subversion.tigris.org/tools_contrib.html运行svn_apply_autoprops.py

svn_apply_autoprops.py将检查您的autoprops设置,并通过您的存储库设置它。

答案 4 :(得分:0)

  

好的,显而易见的答案是   正确; svn:未设置关键字   那个文件了。但我发誓他们   以前是!知道如何/为什么   svn:关键字已被清除   从没有任何人的文件   注意到/做任何事情   目的

我能想到的第一个原因是: 如果文件是svn-added,然后在第一次提交之前移动/重命名,则不应用自动属性。

在这种情况下使文件失去其属性的错误将在Subversion 1.5.6和1.6.0中得到解决。