我有一个非常大的 subversion 存储库,大小约为 7 GB,包含来自不同项目的许多文件和目录。
现在我对一个实际上是一个库的项目结构进行了一些重大更改,并且我在同一个存储库中的许多其他项目中使用它。现在文档很少,我不知道哪个项目真正使用这个库作为外部库,我想以某种方式查询颠覆服务器/存储库以返回所有在 svn:export 属性中具有特定字符串的目录所以我可以调整它们。
理想情况下,如果不检查整个存储库,则会由于所有分支和标签而出现问题。
这可能以某种聪明的方式吗?
谢谢
我有一个非常大的 subversion 存储库,大小约为 7 GB,包含来自不同项目的许多文件和目录。
现在我对一个实际上是一个库的项目结构进行了一些重大更改,并且我在同一个存储库中的许多其他项目中使用它。现在文档很少,我不知道哪个项目真正使用这个库作为外部库,我想以某种方式查询颠覆服务器/存储库以返回所有在 svn:export 属性中具有特定字符串的目录所以我可以调整它们。
理想情况下,如果不检查整个存储库,则会由于所有分支和标签而出现问题。
这可能以某种聪明的方式吗?
谢谢
如果只是一些更改,那么快速而肮脏的方法是使用带有 --recursive 标志的 svn propget 来获取属性,然后手动进行更改(这可能需要一段时间才能返回):
svn propget --recursive svn:externals http://your.svn.server/ | grep -B 5
要以更自动化的方式执行此操作,您可以编写脚本:
递归检索根中每个路径的 svn:externals
检查其外部包含您要查找的字符串的目录(您可以通过文件系统分隔符拆分路径组件,如果您想真正选择检查的内容,则可以使用 depth=immediate 来检查每个组件)
进行并提交更改
这样做的好处是,因为您的签出有效地反映了您的存储库(即使它缺少大量的东西),您可以在顶层进行一次提交,其中包含所做的所有更改。
HTH。