如何查找给定URL的所有svn:externals引用?

时间:2015-10-03 22:03:21

标签: svn shared-libraries svn-externals svn-hooks

有没有办法使用svn,TortoiseSVN和/或其他工具快速在我们控制的存储库中按需查找所有svn:externals对URL的引用? (例如插件/扩展,钩子脚本等)

如果没有,那么正确/最好的方法是创建一个post-commit钩子脚本,在某个文件或数据库中“注册”任何添加或修改的svn:external引用,然后查找外部引用将引用该信息?我们可以使用svn propget -R svn:externals(可能有一些文本修改)为文件/数据库播种,对吗?

详细

我们已准备好开始在我们的开发团队内部使用svn:externals来共享源库。我们将在任何svn:external引用中挂起我们的revs 1 ,以确保我们可以回滚到先前的repo状态。我们大多数人大多数时候都使用TortoiseSVN作为我们的前端。

作为一个比较点,我听说过很多(并且正确地)受到诽谤的Visual SourceSafe有这样的功能,比如右键单击→“使用的地方”。有了这样的功能,当我们想要更改共享模块时,我们可以看到它可能会影响哪些项目。

注意:这个问题与其中任何一个都不重复,因为我问的是如何快速完成,这需要缓存信息。已经注意到svn propget可能需要数小时甚至数天才能返回,具体取决于存储库。

1 如同在TortoiseSVN的External Items页面中那样,修订修订版,a.k.a。“我们使用明确的修订号”。

1 个答案:

答案 0 :(得分:0)

Subversion没有交叉引用外部元数据。 "外部"您从中获取的存储库可能不是您有权修改的系统,例如将开源库拉入本地项目。您需要创建某种钩子脚本来跟踪svn:externals元数据更改并将其记录到数据库中。请注意,这仅适用于该服务器的外部引用。如果其他服务器正在使用' externals'提入您的代码,然后您的服务器无法知道这种情况发生了,您的数据库将不完整。