我需要在提交发生后编辑文件的svn属性。因此,我想使用一个提交后脚本。
示例:
当我提交名为export
的文件时,我有一个名为test
的属性,其值设置为example.ex
在我的提交成功之后,我有一个post-commit钩子,它做了一些聪明的事情(这与我的问题无关),并且在完成之后需要将属性export
更改(或删除)为新值succeeded
。
在命令行上我会使用它:
svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex
这将打开我的系统编辑器vi
,我会看到值test
。我可以将其更改为我想要的任何内容,并使用:wq
Subversion回复了这样的消息
"svn-prop.tmp" 1L, 10C written
Set new value for property 'export' on file:///svn/repositoryName/path/to/file/in/repository/example.ex'
Committed revision 67.
太好了。但正如我所说,我需要在后提交脚本中,我无法控制vi(或者我错了?)。
所以Subversion让我可以在命令propedit
中添加一个文件。该文件仅包含新值succeeded
。
新命令应该如下所示:
svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex --file /path/to/propertyValueFile/propValue.file
这就是问题:最后一个命令不起作用。再次vi
打开,我需要手动更改我的值。为什么?我做错了什么?
答案 0 :(得分:2)
我找到了适用于我的解决方案。
svn propedit "export" file:///svn/repositoryName/path/to/file/in/repository/example.ex --file /data/svn/intranet/hooks/fileWithLogMessage --editor-cmd "echo succeeded >"
--editor-cmd
给了另一位编辑,我可以用echo newValueForProp
来表达智能。
现在它就像一个魅力。
-
答案 1 :(得分:0)
尝试使用svn propset
而不是svn propedit
。使用propedit
总是打开一个外部编辑器......这就是它的用途。