我们在一个subversion存储库中有20个项目。我们将这些项目划分为不同的存储库。 (每个项目彼此独立)。这是最佳做法吗?像这样:
repository1
--> trunk
--> branches
repository2
--> trunk
--> branches
repository3
--> trunk
--> branches
repository4
--> trunk
--> branches
每个项目都必须拥有自己的存储库?正确?
答案 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的基本目录,而彼此是独立的子项目。
我知道这有点罗嗦,但我希望我帮助传达了两种方法的案例用法。 :)