0

我们有一些共享库,它们在我们不同项目的所有标记版本中被引用为静态外部。

重新组织我们共享库的目录结构后,我看到所有标记的版本现在都会出错。我意识到应该通过使用 peg 修订 (@X) 而不是操作修订 (-r X) 来引用外部。

我们有数百个标记版本,其中有两到三个不同的外部参考。

如何递归地将外部定义从可操作更改为在我的 /main/projectX/tags/ 文件夹中钉住?我想我需要某种 shell 脚本来完成这项工作。

4

1 回答 1

0

我们通过运行解决了这个问题:

svn propget svn:externals -R http://repoURL

输出被用作创建具有以下内容的 svnmucc 控制文件的起点:

propset
svn:externals
^/external-source external-target
http://repoURL
propset
svn:externals
^/external-source2 external-target2
http://repoURL

这通过运行应用于回购:

svnmucc -m 'Changing externals from operative to peg' -X controlfile.txt

propget 的输出与 svnmucc 格式有很大的不同,所以我不得不做一些手工工作,并编写了一个小 PHP 脚本来完成大部分重复工作。

我唯一无法使用 svnmucc 做的事情是同一个文件夹上有多个外部文件。显然, svnmucc不能在同一个目标上设置多行属性。但是我们的 repo 中只有几个,所以可以使用 TortoiceSVN repo 浏览器手动修复。

于 2013-09-23T15:08:20.830 回答