6

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似乎不起作用。

4

2 回答 2

7

您必须以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 下,您可能也可以使用这种单线,但我不知道有 Win32 类似物。

SVN 在这项任务中并没有特别出色:/

于 2013-09-17T11:32:45.330 回答
0

我有同样的问题,但@zb226 的解决方案不起作用。

我正在尝试各种事情,这是某种错误,也许它与将服务器从 linux Centos 更改为 Windows(VisualSVN)有关。问题在于符号后缺少空格(在这种情况下,“mytool”前面缺少空格

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

svn propset svn:externals " mytool https://path/to/mytool/tags/1.0.9" .
于 2021-03-03T12:12:13.643 回答