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

使用svn查找路径:具有特定字符串的外部属性?,svn,svn-externals,Svn,Svn Externals,我有一个非常大的subversion存储库,大约7GB大小,保存着来自不同项目的许多文件和目录 现在我对一个项目结构做了一些重大更改,它实际上是一个库,我正在同一存储库中的许多其他项目中使用它。现在文档很少,我不知道哪个项目真正使用这个库作为外部库,我想通过某种方式查询subversion服务器/存储库,以返回所有在svn:export属性中有特定字符串的目录,以便我可以调整它们 理想情况下,如果不签出整个存储库,由于所有分支和标记的存在,结果会出现问题 以一种聪明的方式这可能吗 thx如果只是

我有一个非常大的subversion存储库,大约7GB大小,保存着来自不同项目的许多文件和目录

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

理想情况下,如果不签出整个存储库,由于所有分支和标记的存在,结果会出现问题

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


thx

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

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

  • 递归检索根目录中每个路径的svn:externals

  • 签出目录,其外部包含您要查找的字符串(如果您想真正有选择性地签出内容,可以通过文件系统分隔符拆分路径组件,并使用depth=immediate签出每个组件)

  • 做出并提交更改

这样做的好处是,因为签出有效地反映了您的存储库(即使它丢失了大量的内容),所以您可以在顶层对所有更改进行一次提交


HTH.

就是这样,太棒了!是否可以将
svn-propget--recursive
限制为仅限于目录?我发现(我认为)它也递归扫描文件,这是一个巨大的问题,因为一些存储库(通过网络)花费了一天的时间来获取这些信息。不,我认为这是不可能的。如果你觉得勇敢,你可以看看SVNAPI(它是C语言的,但是有许多语言的扩展)。我以前使用它递归地签出存储库中的所有目录,以进行大规模更改(如更新外部)。如果你有任何编码经验,这是一个相当不错的API。我认为这里的5意味着我们要展示前面的5行。但是代码段中缺少所需的字符串?应该是5点以后吧?
svn propget --recursive svn:externals http://your.svn.server/ | grep -B 5