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