SVN外部,如何在服务器上列出以及如何分支?

SVN外部,如何在服务器上列出以及如何分支?,svn,external,Svn,External,我们正在迁移到Subversion,并正在决定如何最好地处理共享对象。我知道外部,并希望使用这些。我们维护大量面向数据库的应用程序,这些应用程序广泛使用Oracle软件包。有时,在多个应用程序中需要相同的功能,因此我们在app2中重用来自app1的对象。出现以下两个问题 1/如果我们从一个共享对象开始,则在app1中创建,保存到SVN的存储库结构中,并通过外部数据库共享给app2。我们可以在以后的时间在app2中分支这个对象并发散吗?app2中新发散对象的历史记录是否会显示其作为app1外部对象

我们正在迁移到Subversion,并正在决定如何最好地处理共享对象。我知道外部,并希望使用这些。我们维护大量面向数据库的应用程序,这些应用程序广泛使用Oracle软件包。有时,在多个应用程序中需要相同的功能,因此我们在app2中重用来自app1的对象。出现以下两个问题

1/如果我们从一个共享对象开始,则在app1中创建,保存到SVN的存储库结构中,并通过外部数据库共享给app2。我们可以在以后的时间在app2中分支这个对象并发散吗?app2中新发散对象的历史记录是否会显示其作为app1外部对象的历史记录

编辑:为了澄清,在分支app1.object!=app2.object。所以我们有一个对象,我们共享它,稍后我们希望将这两个对象分开。我们希望能够追溯app2.object的历史,包括它是app1.object副本的时间


2/我们能否识别外部链接的每个端点?也就是说,是否有一个实用程序可以告诉我app2、app5和app6都使用对象app1.object?我知道,但这对工作副本有效,理想情况下,我希望能够在查看存储库的服务器上运行一些东西。我想写一个用户可访问的工具,用于识别每个外部对象“X”的端点。

因此对1的一个非常简短的响应是,是的,您可以分支。但是,您需要修改外部,以便它们使用新的分支。因此,首先要通过svn copy对共享项目进行分支,然后在app2中修改外部项目以指向新分支。是的,只要分支正确完成,您的所有历史记录都将保持完整

至于你的第二个问题,据我所知,不存在这样的效用。如果您需要了解这一点,那么使用脚本实现自动化就足够简单了。它需要检查所有潜在的项目,迭代每个项目并检查外部。使用字典,您可以跟踪其他存储库引用的存储库。然后格式化一下,砰!你在用火做饭。希望这有帮助

我不确定我是否理解这个问题。 在您的例子中,app2只需引用app1。 不能在app2的上下文中分支app1-app1不受app2树中的svn控制, 它只是在app2树中签出,根据您的需求构造所需的目录结构。用于建筑app2等

使用svn:externals时,最好指示外部资源的修订号,请参见。例如:

第三方/皮肤/工具包-r21