Version control 哪个版本控制布局更好?带测试的项目

Version control 哪个版本控制布局更好?带测试的项目,version-control,Version Control,我正在重新组织我运行的开源项目版本控制的布局,现在没有人在使用这个项目,所以我想我会更好地组织布局,这样如果人们想使用它,它会更易于维护和使用 我一直在读一些关于不同布局的书,但还没有真正发现任何关于有测试的项目的东西。我已经想出了两种不同的布局,我认为可能会工作,但我只是不能决定哪一个会更好 每个项目文件夹中的lib文件夹包含项目需要编译的已编译二进制文件。 因此ProjectA.Examples.Lib文件夹将包含ProjectA的最新稳定编译版本 你认为哪种布局更好 与1)相比,我看到2

我正在重新组织我运行的开源项目版本控制的布局,现在没有人在使用这个项目,所以我想我会更好地组织布局,这样如果人们想使用它,它会更易于维护和使用

我一直在读一些关于不同布局的书,但还没有真正发现任何关于有测试的项目的东西。我已经想出了两种不同的布局,我认为可能会工作,但我只是不能决定哪一个会更好

每个项目文件夹中的lib文件夹包含项目需要编译的已编译二进制文件。 因此ProjectA.Examples.Lib文件夹将包含ProjectA的最新稳定编译版本

你认为哪种布局更好

与1)相比,我看到2)的优势在于,测试包含在ProjectA中,因此您无法在没有测试的情况下下拉ProjectA,如果您分支或标记测试,则测试也会随之进行


编辑我对图片进行了编辑,以显示我最初的意图。感谢@Esko Luontola指出这一点。

因为测试应该与它们所运行的代码一起进行版本控制,(2)在我看来更有意义。将它们放在同一层次结构中可以减少过时问题的可能性,并在开发周期的早期引发任何冲突



注意:OP澄清了
测试
目录确实应该在
主干下

您可以尝试以下操作:

  • 计划
    • 项目A
      • 标签
      • 分支机构
      • 树干
        • 解放党
        • 医生
        • src
        • 测验
        • 样品

该组织将整个项目(包括其测试和样本(实际上是整个项目的一部分))保存在源代码管理的一个版本树中。

源代码和测试应始终在主干下。因此,SVN中的存储库布局如下:

  • 项目A
    • 分支机构
    • 标签
    • 树干
      • src
      • 试验
      • 解放党
  • ProjectA示例
    • 分支机构
    • 标签
    • 树干
      • src
      • 解放党
另一种可能是将示例与主代码库一起存储。如果示例很小,并且您将示例与主代码库一起重新分发,这将更有意义

  • 项目A
    • 分支机构
    • 标签
    • 树干
      • src
      • 试验
      • 解放党
      • 例子

另一方面,如果示例是中等大小的示例应用程序,然后,每个示例都可以作为自己的项目使用。

我本来打算这样做的,但是示例可能包含用于演示的大型文件,我不想每次需要编辑项目的源代码时都将其签出。您可以考虑在/project/ProjectA/trunk/中为您的项目创建一个更复杂的目录结构。但是,我建议您在任何时候进行更改时,确保所有样本都已编译,并且样本上的所有测试都已通过,而通过检查整个树来完成这一任务将是最容易的。糟糕,测试应该在主干中,但我将图像塞满了。