我们正在迁移到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?我知道SVN List question但这适用于工作副本,理想情况下我希望能够在服务器上运行查看存储库的内容。我想到了编写一个用户可访问的工具,用于识别对象'X'的每个外部的端点。
答案 0 :(得分:0)
所以对#1的响应很短,是的,你可以分支。但是,您需要修改外部,以便它们使用新分支。首先,您将分支共享项目(通过svn copy),然后您将修改app2中的外部以指向新分支。是的,只要分支正确完成,您的所有历史记录都将保持不变。
关于你的第二个问题,据我所知,没有这样的效用。如果你需要找到它,那么使用脚本自动化就足够了。它需要检查所有潜在的项目,迭代每个项目并检查外部。使用字典,您可以跟踪其他存储库引用的存储库。然后一点点格式化和bam!你正在用火烹饪。希望这会有所帮助。
答案 1 :(得分:0)
不确定我理解这个问题。 在你的情况下app2只是引用app1。 你不能在app2的上下文中分支app1 - app1不受app2树中的svn控制, 它只是在app2树中结账,根据你的要求构建所需的目录结构(例如,用于构建app2等)。
使用svn:externals时,最好指出外部资源的修订号(参见here)。例如:
第三方/皮肤/工具包-r21 http://svn.example.com/skin-maker