2009-02-23 59 views
8

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

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

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

但每一个现在,然后,提交后,信息被删除,我们只剩下

$Id$ 

这显然打破了东西一点点。有谁知道它为什么会发生?


好的,明显的答案是正确的;没有再为该文件设置svn:keywords。但我发誓他们曾经是!任何想法如何/为什么svn:keywords将被从文件中清除,而没有任何人有目的地发现/做任何事情?

回答

10

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

svn ps svn:keywords 'Id' filename.txt 
+0

谢谢,我应该先检查一下;关键字没有像你怀疑的那样为这个文件设置 - 但我发誓他们曾经是! – 2009-02-23 23:21:42

+0

如果你正在运行命令行SVN客户端,你可以在〜/ .subversion/config文件中设置这个东西的默认值。这个_may_也适用于TortoiseSVN,但不要在此引用我的意思。 – 2009-02-23 23:26:19

2

如果定义了'svn:keywords'属性,则仅在结帐时扩展关键字。当使用像ViewSVN这样的资源库浏览工具时,它们不应该被扩展,即。它们显示为$ Id $。

+0

所以,如果我已经“丢失” SVN的关键字(关键字设置,但它们还没有被扩展),是否有扩展他们的方式我可以强制使用“Checkout”? – 2009-02-24 00:21:20

0

好的,明显的答案是 正确; svn:关键字未被设置为 那个文件。但我发誓他们曾经是 !任何想法如何/为什么 svn:关键字将被清除 从一个文件没有任何人 注意/做任何事情 的目的?

的第一个原因,我能想到的是: 如果文件svn的添加,然后移动/第一承诺没有应用自动属性之前改名。

在这种情况下导致文件丢失属性的错误将在Subversion 1.5.6和1.6.0中解决。

6

确保您的文件是UTF-8,而不是Unicode。因为SVN认为这些不是文本文件,所以统一编码的字符串不会被扩展......我用记事本保存为UTF-8来解决问题

相关问题