设置svn externals属性时出错

时间:2013-09-17 11:04:02

标签: svn

我在本地svn:externals工作副本中设置(或更改)svn定义时遇到问题。第一

svn propget svn:externals

列出以下内容:

https://path/to/mytool/tags/1.0.8 mytool

我想更改此属性,使其指向修订号为1.0.9的标记。我尝试了以下方法:

svn propset svn:externals https://path/to/mytool/tags/1.0.9 mytool
svn: Error parsing svn:externals property on 'mytool': 'https://path/to/mytool/tags/1.0.9'

svn propset mytool svn:externals https://path/to/mytool/tags/1.0.9
svn: Setting property on non-local target 'https://path/to/mytool/tags/1.0.9' needs a base revision

和上面相同的URL和目标目录在引号中设置(找到相同问题的答案),这两者都产生错误

svn: Explicit target required ('https://path/to/mytool/tags/1.0.9 mytool' interpreted as prop value)

那么我做错了什么?如何正确更改属性。 svn help在这里没有真正帮助......

附录:使用svn propedit svn:externals .它似乎确实有用。我能够更改此属性,我现在可以提交。但propset似乎不起作用。

2 个答案:

答案 0 :(得分:6)

您必须以PROPVAL的形式指定TARGET-DIRECTORY EXTERNAL-PATH,并将其设置在TARGET-DIRECTORY的父目录中。所以在你的例子中......

svn propset svn:externals "mytool https://path/to/mytool/tags/1.0.9" .

...在名为mytool的目录的父目录中执行。

更新:要使用多行执行此操作,我使用的常规方法是将属性写入文件,例如externals.txt,然后使用

进行设置
svn propset svn:externals -F externals.txt .

在Linux下,您可能也会使用this one-liner,但我不知道Win32的类似物。

当涉及到这项任务时,SVN并不是特别闪耀:/

答案 1 :(得分:0)

我遇到了同样的问题,但来自 @zb226 的解决方案不起作用。

我尝试了各种方法,但这是某种错误,可能与将服务器从 Linux Centos 更改为 Windows(VisualSVN)有关。问题在于 " 符号后缺少空格(在这种情况下,"mytool" 前面缺少空格

如果没有额外的空间,它就无法工作并发生解析错误。在示例中,我展示了它是如何为我工作的。它与@zb226 提出的解决方案基本相同,但多了一个空格。

svn propset svn:externals " mytool https://path/to/mytool/tags/1.0.9" .