我在本地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
似乎不起作用。
答案 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" .