我们有一些共享库,这些库在我们不同项目的所有标记版本中被引用为静态外部。
重新组织共享库的目录结构后,我发现所有标记的版本现在都会出错。我意识到外部应该通过使用peg revision(@X)而不是操作修订(-r X)来引用。
我们有数百个标记版本,其中有两到三个不同的外部参考。
如何在/ main / projectX / tags /文件夹中递归地将外部定义从可操作更改为挂钩?我想我需要某种shell脚本来完成这项工作。
答案 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浏览器手动修复。