0

在某个时候,我决定开始对我的 C++ 类进行测试。所以我去了我的主分支并从它分支到一个名为“测试”的新分支。我创建了一个包含一些基本测试的 /tests 文件夹,并在我的 Automake.am 文件中的 check_PROGRAMS 下添加了测试程序名称(我使用 GNU 构建系统,又名 Autotools,作为我的构建系统)。

由于我的项目仍处于早期阶段,因此没有稳定版本。大多数接口仍在构建中,所以现在为所有接口编写完整的测试还为时过早,因为接口会改变,无论如何我都必须重写许多测试。但是我有一个分支,我在其中开发了一些我想测试的或多或少的独立算法。我的 GUI 不完整,但我确实想在编写使用它们的 GUI 之前测试这些算法。

所以我看到的选项是:1.将“测试”合并到master,然后将“master”合并到算法分支2.将“测试”合并到算法分支3.只需在算法分支中创建一个/tests文件夹而不进行任何合并目前

一些分支有一些文件被重命名或删除,因为它是一个早期阶段,所以如果我将 testing/master 合并到算法分支中,我会得到一个包含不相关测试的测试文件夹。但是算法接口是项目的第一部分,完全准备好测试并变得稳定并可以使用,所以如果我不合并,我会得到一个“干净”的测试文件夹,其中现在唯一的测试是一个测试算法,这是第一个具有现成接口的部分,所以我不希望那里发生变化,只是修复我检测到的测试错误。

这里最好的合并/不合并策略是什么?

4

3 回答 3

1

为什么要在不同的分支中进行测试?git 中的分支通常用于在项目的并行版本之间切换,例如“稳定”和“开发”。在“有测试的版本”和“没有测试的版本”之间切换的目的是什么?

最有意义的是在所有分支中进行测试。然后你的主分支中的测试不需要工作,因为你的代码还没有完成,你可以让你的算法分支中的测试在主分支之前工作。当你最终让主测试工作时,你可以合并算法分支。

于 2013-02-10T18:02:45.830 回答
1

我可以想到两个选择:

  1. 如果您已经在“测试”分支上进行了一些配置以使测试正常工作,请选择选项 2:

    Merge "testing" to the "algorithm" branch
    

    这样,您就不会浪费时间再次配置所有内容。

    至于你称之为不相关的测试,如果它们真的不相关,你可以在执行合并之前简单地删除它们。但是检查测试配置是否有效的测试并不是无关紧要的。我不知道这是不是你的情况。

  2. 第二种选择是从“算法”创建一个新分支,我们称之为“算法2 ”。

    Merge "testing" into "algorithm2"
    

    如果一切都按您的预期工作,那么您可以删除“算法”分支。这将是一种向您的算法分支引入新更改的安全方式。

于 2013-02-10T18:46:21.507 回答
0

最好的一般策略是制作持有稳定版本或将成为稳定版本的主分支。1.0, 2.0 ..etc 然后为每个测试或特性创建一个叫做特性分支的东西。删除文件没什么大不了的,因为 git rm 文件将在合并中完成。始终通过拉取请求与主分支 (2.0) 合并

玩得开心。

于 2013-02-10T18:21:28.867 回答