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

has*_*sen 3 svn

标题说的是什么

我试过svn pd但不知道使用它的正确语法.

>svn pd svn:keywords Id
svn: warning: 'Id' is not under version control
Run Code Online (Sandbox Code Playgroud)

更新:

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

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

我的文件仍在$Id$扩展.

UPDATE2:

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

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

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

>svn propdel svn:keywords . -R
Run Code Online (Sandbox Code Playgroud)

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

我试过了:

>svn revert . -R
Run Code Online (Sandbox Code Playgroud)

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

Mne*_*nth 5

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

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

svn propdel svn:keywords . -R
Run Code Online (Sandbox Code Playgroud)

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

svn propset svn:keywords "Revision" . -R
Run Code Online (Sandbox Code Playgroud)

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

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

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