我正在重新组织我运行的开源项目版本控件的布局,目前没有人正在使用该项目所以我认为我会进入并组织布局更好一点因此,如果人们想要使用它,它就更容易维护和使用。
我一直在阅读有关不同布局的一些内容,但还没有真正找到任何涉及有测试项目的内容。我想出了两种不同的布局,我认为可能会有效,但我无法确定哪种布局更好。
alt text http://img31.imageshack.us/img31/2765/projectlayout2.jpg
每个项目文件夹中的lib文件夹包含项目需要编译的已编译二进制文件。 因此ProjectA.Examples.Lib文件夹将包含ProjectA的最新稳定编译版本。
您认为哪种布局会更好?
我看到2)超过1)的优点是测试包含在ProjectA中,因此您无法在没有测试的情况下拉下ProjectA,如果您对测试进行分支或标记,请使用它。
编辑我编辑了图片以显示我的意图。感谢@Esko Luontola指出这一点。
答案 0 :(得分:5)
由于测试应该与他们运行的代码一起进行版本控制,(2)更有意义imo。将它们保持在同一层次结构中可以减少过时问题的可能性,并在开发周期的早期引发任何冲突。
注意: OP已澄清tests
目录确实应位于trunk
下。
答案 1 :(得分:2)
源代码和测试应始终在一起,两者都在trunk下。所以SVN中的存储库布局是这样的:
另一种可能性是将示例与主代码库一起存储。如果示例很小并且您将示例与主代码库一起重新分发,那么这将更有意义。
另一方面,如果示例是中等大小的示例应用程序,那么每个示例可能最适合作为自己的项目。
答案 2 :(得分:1)
您可以尝试以下方式:
该组织在源代码管理的单个版本化树中保留整个项目,包括其测试和样本(实际上是整个项目的一部分)。