3

提交发生后,我需要编辑文件上的 svn 属性。因此,我想使用提交后脚本。

例子:

我有一个名为的属性,当我提交一个名为的文件时export设置 为(或删除)该属性为新值,如.testexample.exexportsucceeded

在命令行我会使用这个:

svn propedit "export"  file:///svn/repositoryName/path/to/file/in/repository/example.ex

这将打开我的系统编辑器vi,我会看到值test。我可以将它更改为我想要的任何内容,并使用 vi 命令保存并退出文件,例如: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打开,我需要手动更改我的值。为什么?我究竟做错了什么?

4

2 回答 2

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.

现在它就像一个魅力。

--

于 2012-05-13T06:48:16.277 回答
0

尝试使用svn propset而不是svn propedit. 使用propedit 总是打开一个外部编辑器......这就是它的用途。

于 2012-05-12T16:12:01.567 回答