svn以非交互式脚本加速

时间:2012-05-11 10:19:13

标签: svn shell unix post-commit

我需要在提交发生后编辑文件的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

等vi命令保存并退出文件

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打开,我需要手动更改我的值。为什么?我做错了什么?

2 个答案:

答案 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 总是打开一个外部编辑器......这就是它的用途。