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

时间:2011-02-25 14:21:37

标签: svn svn-externals

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

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

理想情况下,如果不检查整个存储库,由于所有分支和标记都会导致问题。

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

THX

1 个答案:

答案 0 :(得分:6)

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

svn propget --recursive svn:externals http://your.svn.server/ | grep -B 5

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

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

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

  • 制作并提交更改

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

HTH。