如何防止svn扩展$ Id $关键字?

时间:2009-05-14 08:05:33

标签: svn

标题是什么

我尝试svn pd,但不知道使用它的正确语法。

>svn pd svn:keywords Id
svn: warning: 'Id' is not under version control

更新

我希望这在整个当前目录中,而不仅仅是一个文件,所以我尝试了:

>svn propdel svn:keywords "Id" . -R
svn: warning: 'Id' is not under version control
property 'svn:keywords' deleted (recursively) from '.'.

我的文件仍然展开了$Id$

UPDATE2:

更清楚的是,我没有对svn做任何事情,只是检查它并不时更新。

我注意到当我使用git-svn获取它时,所有$Id$标签都被保留(未展开),我希望svn做同样的事情。

所以现在我运行了这个命令:

>svn propdel svn:keywords . -R

我现在应该怎么做才能在不扩展$ Id $的情况下获取最新文件?我想我想要的是告诉svn再次拉所有文件......

我试过了:

>svn revert . -R

但它似乎没有做我想要的。

2 个答案:

答案 0 :(得分:5)

'svn propdel'只将路径作为参数,而不是“Id”。因此,您只能完全删除svn:keywords-property,或者编辑属性。

因此,如果您不关心其他关键字,可以使用以下内容:

svn propdel svn:keywords . -R

如果您想要一些关键字作为标准,但不是“ID”,您可以递归设置:

svn propset svn:keywords "Revision" . -R

另一件事是:如果删除关键字“Id”,则此关键字在文件中保持不变。如果它在它保持这种状态之前被扩展了,但是如果你回到$ Id $它将不会扩展。

回答更新2: svn-revert总是从文件中取回最后一个修订版。那不是你想要的。

正如我之前所说,如果关键字被扩展一次,它们就会保持不变,即使您稍后停用扩展。因此,您需要一个脚本来将文件恢复为未展开的$ Id $并再次提交。之后 - 如果您按照描述停用了扩展程序 - 关键字保持未展开状态。

答案 1 :(得分:1)

您需要说明您希望删除该属性的内容。所以你在最后遗漏了一个文件名

svn propdel svn:keywords "Id" file

否则svn似乎只将最后一个参数作为文件名,这不在版本控制之下