颠覆:将所有静态外部因素从操作修改为挂钩修订?

时间:2013-09-18 19:39:06

标签: svn tortoisesvn svn-externals

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

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

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

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

1 个答案:

答案 0 :(得分: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 cannot set multi-line properties on the same target。但我们只在回购中有一些,所以可以使用TortoiceSVN repo浏览器手动修复。