0

我在使用 subversion 方面有一些经验,但我首先需要一些建议来正确构建我的存储库。

我有多个不相关的小型项目,但我也有一些全球项目,其中许多较小的项目都依赖于这些项目。全局项目包含其他项目共有的可重用库等。

我是否只有一个存储库,但每个项目都有一个项目根(主干)(即每个项目一个,包括全局项目)?

我不想将所有项目放在同一个根目录中,因为除了全局项目之外,它们大多不相关。

目前所有小项目的解决方案都特别包含全局项目,这意味着他们可以更新源代码,但这意味着如果将某些内容提交到全局,所有项目都会受到影响。将其分开并仅在项目中包含全局dll会更好吗?这样我就可以确保该项目仅使用该版本的全局?

感谢您的建议!

4

2 回答 2

1

有两个相当实用的选择:

big_project
  trunk
  branches
  tags
little_project_1
  trunk
  branches
  tags
little_project_2
  trunk
  branches
  tags

或者

trunk
  big_project
  little_project_1
  little_project_2
branches
  branch_x
    big_project
    little_project_1
    little_project_2
  branch_y

等等。

如果这些项目除了共享一些通用的实用程序库或类似的工具库之外几乎没有任何关系,我会选择选项 1,因为它可以让它们更整齐地分开。如果它们紧密联系在一起,则选项 2 的优点是您可以通过一次结帐将它们全部结清。

我不认为这很重要。请注意,选项 2 并不强制您将所有项目一起更新:您可以在主干下只提交一个项目。

如果他们共享的唯一东西是一些实用程序库,我会考虑将这些库分解到他们自己的项目中,这样您就不必为了获得三个功能而吸收整个 big_project。

于 2013-01-07T14:22:29.397 回答
0

我建议在小项目中使用外部指令从大项目中引入库。

SVN External 指令有一些功能在外部(大项目)在同一个存储库中时效果最好,所以我不建议使用单独的存储库。为每个项目使用单独的顶级文件夹。像杰伊的选项1。

当您使用外部指令链接到大项目中的特定修订时,对大项目的更改不会影响小项目。当一个小项目准备好利用大项目中的更改时,他们可以更改其外部指令以链接到新修订版。

于 2013-01-07T15:38:33.877 回答