用svn查找路径:带有特定字符串的外部属性?

mar*_*ark 3 svn svn-externals

我有一个非常大的subversion存储库,它的大小约为7 GB,并且包含来自不同项目的许多文件和目录.

现在我对一个项目结构做了一些重大改动,实际上是一个库,我在同一个存储库中的很多其他项目中使用它.现在文档是稀疏的,我不知道哪个项目实际上真的使用这个库作为外部,我想以某种方式查询subversion服务器/存储库以返回我在svn:export属性中具有某个字符串的所有目录所以我可以调整它们.

理想情况下,不检查整个存储库,由于所有分支和标记,将导致问题.

这有可能以一种聪明的方式吗?

谢谢

Ste*_*eMc 6

快速而肮脏的方式,如果只是一些更改,是使用带有--recursive标志的svn propget来获取属性,并手动进行更改(这可能需要一段时间才能返回):

svn propget --recursive svn:externals http://your.svn.server/ | grep -B 5
Run Code Online (Sandbox Code Playgroud)

要以更自动化的方式执行此操作,您可以编写脚本:

  • 以递归方式检索根中每个路径的svn:externals

  • 检查其外部包含您正在寻找的字符串的目录(您可以通过文件系统分隔符拆分路径组件,并检查每个组件的深度=立即如果您想真正选择您检查的内容)

  • 制定并提交变更

这样做的好处是,因为您的结账有效地镜像了您的存储库(即使它缺少大量的东西),您可以在顶层进行一次提交,并进行所有更改.

HTH.