是为每个项目创建新存储库的最佳实践吗?

时间:2017-12-08 06:51:20

标签: svn version-control repository

我们在一个subversion存储库中有20个项目。我们将这些项目划分为不同的存储库。 (每个项目彼此独立)。这是最佳做法吗?像这样:

   repository1
     --> trunk
     --> branches

   repository2
     --> trunk
     --> branches

   repository3
     --> trunk
     --> branches

   repository4
     --> trunk
     --> branches

每个项目都必须拥有自己的存储库?正确?

1 个答案:

答案 0 :(得分:1)

这取决于您的开发环境和情况。

根据我在工作中的个人经验,我们为完全不同的项目(不依赖于项目的项目)执行不同存储库的子集。但是,在开发具有大量组件的项目时,我们还使用“子模块”类型的目录结构。

例如,我们将有一个核心项目:

  repository1
     --> trunk
     --> branches

此repo表示包含此存储库的任何项目可以使用的一组功能。不依赖于任何其他存储库。

但是,我有另一个用于开发大量组件的存储库。

  repository2
     module1
       --> trunk
       --> branches

     module2
       --> trunk
       --> branches

     module3
       --> trunk
       --> branches

     module4
       --> trunk
       --> branches

     module5
       --> trunk
       --> branches

     MyModules

     YourModules

我使用这种方法的原因是因为这些模块可以/将被彼此使用。例如,开发人员A可能正在处理 MyModules 内的新模块module4。为了使他的新模块正常工作,他/她需要使用我们称之为 external 的模块1和3.开发人员B可以使用新模块作为好吧, YourModules 中的module5。但他/她需要模块2和3。

通过使用此方法的外部,用户可以基本上设置结帐文件夹(MyModules和YourModules)。因此,当开发人员A检出MyModules时,它将分别检出模块1,3和4.同样对于使用2,3和5检出YourModules的开发人员B.这样做的好处是所有用户仍然“指向”模块1,2和3的基本目录,而彼此是独立的子项目。

我知道这有点罗嗦,但我希望我帮助传达了两种方法的案例用法。 :)