你如何构建你的SVN存储库? [关闭]
-
02-07-2019 - |
题
什么更好?
答强>
server:1080/repo/projectA/trunk/...
branches/branch1
branches/branch2
branches/branch3
tags/tag1/...
tags/tag2/...
server:1080/repo/projectB/trunk/...
branches/branch1
branches/branch2
branches/branch3
tags/tag1/...
tags/tag2/...
<强> B:强>
server:1080/repo/trunk/projectA/...
branches/projectA/branch1
branches/projectA/branch2
branches/projectA/branch3
tags/projectA/tag1/...
tags/projectA/tag2/...
server:1080/repo/trunk/projectB/trunk/...
branches/projectB/branch1
branches/projectB/branch2
branches/projectB/branch3
tags/projectB/tag1/...
tags/projectB/tag2/...
您使用什么存储库结构?为什么?
解决方案
其他提示
我们使用A,因为另一个对我们没有意义。注意,“项目”是指“项目”。关于SVN不一定是单个项目,但可能是几个属于一起的项目(即您将在Visual Studio中放入解决方案)。这样,您就可以将任何相关的组合在一起。所有分支,标签和特定项目的主干。对我来说很有意义。
通过分支/标记进行分组对我来说没有意义,因为不同项目的分支没有任何共同之处,只是它们都是分支。
但最终,人们使用两种方式。做你喜欢的,但是当你决定的时候,试着坚持下去:)
作为补充:我们为每个客户提供单独的存储库,即客户的所有项目都在同一个存储库中。这样你就可以这样立即备份单个客户,或者在不与SVN抗争的情况下提供客户拥有的任何内容的源代码。
我建议选择C:
server:1080/projectA/trunk/...
branches/branch1
branches/branch2
branches/branch3
tags/tag1/...
tags/tag2/...
server:1080/projectB/trunk/...
branches/branch1
branches/branch2
branches/branch3
tags/tag1/...
tags/tag2/...
我更喜欢将单独的项目保存在单独的存储库中。使用 svn:externals 可以轻松管理共享的代码库项目在两个或更多应用项目中。
我们使用设置B.因为一次检查/标记多个项目更容易。在svn 1.5中,可以通过稀疏结账,但不是一键操作。 如果某些项目之间存在隐藏的依赖项,则您希望使用设置B.
我们使用
/repos/projectA/component1/trunk - branches - tags
/repos/projectA/component2/trunk - branches - tags
/repos/projectB/component3/trunk - branches - tags
/repos/projectB/component4/trunk - branches - tags
我开始后悔。它应该更平坦。这会更好。
/repos/projectA/trunk - branches - tags
/repos/projectB/trunk - branches - tags
/repos/component1/trunk - branches - tags
/repos/component2/trunk - branches - tags
/repos/component3/trunk - branches - tags
/repos/component4/trunk - branches - tags
为什么呢?产品(组件,成品软件)永远存在。项目来去匆匆。去年只有一个项目团队正在创建产品QUUX。明年,该团队分散,一两个人维持QUUX。明年,将有两个大的QUUX扩展项目。
鉴于时间表,QUUX应该出现在三个项目存储库中吗?不,QUUX独立于任何特定项目。确实,项目确实有工作产品(文档,积压等),这些工作产品是完成工作的一部分,但不是工作的实际目标。因此,“projectX”表示“projectX”。该材料的存储库 - 项目完成后没人会关心的东西。
我参与了一个有三个团队的产品。协调工作的大问题是因为每个项目都独立管理它的存储库。有团队间发布和团队间协调。在那天结束时,它应该是一个软件。但是,正如您所猜测的那样,它是三个具有奇怪重叠和冗余的软件。