为每个项目创建一个新的存储库是最佳实践吗?
Is it best practice that create a new repository for every project?
我们在一个 Subversion 存储库中有 20 个项目。我们将这些项目划分到不同的存储库中。 (每个项目都是相互独立的)。这种方式是最佳实践吗?所以像这样:
repository1
--> trunk
--> branches
repository2
--> trunk
--> branches
repository3
--> trunk
--> branches
repository4
--> trunk
--> branches
每个项目都必须有自己的存储库?对吗?
这取决于你的开发环境和情况。
根据我个人的工作经验,我们为完全不同的项目(不依赖于项目的项目)创建了不同存储库的子集。但是,在开发包含大量组件的项目时,我们也会使用 "sub-module" 类型的目录结构。
例如,我们有一个核心项目:
repository1
--> trunk
--> branches
此存储库代表一组功能,包含此存储库的任何项目都可以使用这些功能。不依赖于任何其他存储库。
但是,我有另一个存储库用于开发一堆组件。
repository2
module1
--> trunk
--> branches
module2
--> trunk
--> branches
module3
--> trunk
--> branches
module4
--> trunk
--> branches
module5
--> trunk
--> branches
MyModules
YourModules
我之所以使用这种方法,是因为这些模块can/will可以互相使用。例如,开发人员 A 可能正在开发一个新模块,MyModules 中的 module4。为了让他的新模块工作,he/she 需要使用我们所说的 external 到模块 1 和 3。开发人员 B 可以工作还有一个新模块,YourModules 中的 module5。但是 he/she 需要模块 2 和 3。
通过使用此方法的外部组件,用户基本上可以设置结帐文件夹(MyModules 和 YourModules)。因此,当开发人员 A 签出 MyModules 时,它会分别签出模块 1、3 和 4。同样对于签出 YourModules 的开发人员 B,他签出 2,3 和 5。这样做的好处是所有用户仍然 "pointing" 到模块 1、2 和 3 的基本目录,同时它们是彼此独立的子项目。
我知道这有点罗嗦,但我希望我能帮助传达有关这两种方法的案例用法。 :)
我们在一个 Subversion 存储库中有 20 个项目。我们将这些项目划分到不同的存储库中。 (每个项目都是相互独立的)。这种方式是最佳实践吗?所以像这样:
repository1
--> trunk
--> branches
repository2
--> trunk
--> branches
repository3
--> trunk
--> branches
repository4
--> trunk
--> branches
每个项目都必须有自己的存储库?对吗?
这取决于你的开发环境和情况。
根据我个人的工作经验,我们为完全不同的项目(不依赖于项目的项目)创建了不同存储库的子集。但是,在开发包含大量组件的项目时,我们也会使用 "sub-module" 类型的目录结构。
例如,我们有一个核心项目:
repository1
--> trunk
--> branches
此存储库代表一组功能,包含此存储库的任何项目都可以使用这些功能。不依赖于任何其他存储库。
但是,我有另一个存储库用于开发一堆组件。
repository2
module1
--> trunk
--> branches
module2
--> trunk
--> branches
module3
--> trunk
--> branches
module4
--> trunk
--> branches
module5
--> trunk
--> branches
MyModules
YourModules
我之所以使用这种方法,是因为这些模块can/will可以互相使用。例如,开发人员 A 可能正在开发一个新模块,MyModules 中的 module4。为了让他的新模块工作,he/she 需要使用我们所说的 external 到模块 1 和 3。开发人员 B 可以工作还有一个新模块,YourModules 中的 module5。但是 he/she 需要模块 2 和 3。
通过使用此方法的外部组件,用户基本上可以设置结帐文件夹(MyModules 和 YourModules)。因此,当开发人员 A 签出 MyModules 时,它会分别签出模块 1、3 和 4。同样对于签出 YourModules 的开发人员 B,他签出 2,3 和 5。这样做的好处是所有用户仍然 "pointing" 到模块 1、2 和 3 的基本目录,同时它们是彼此独立的子项目。
我知道这有点罗嗦,但我希望我能帮助传达有关这两种方法的案例用法。 :)