如何使用git标签(或其他)来区分测试/ dev / prod发布版本?

时间:2016-03-22 18:51:06

标签: git

我们正在开发在年内有主要和次要版本的软件。我们编写测试代码以允许Travis-CL自动化测试。我们希望有一种机制来过滤掉软件最终版本中的所有测试代码。可以使用git标签吗?标签将应用于各个提交。

理想情况下可用的场景如下:

git checkout release-2016-01 --tag test-code

包含已标记为测试代码的提交。

我不确定这种情况的最佳做法是什么,以及git如何支持这种做法。

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。

第一种方法是你的建议的精美版本。

您可以拥有发布分支和其他测试提交,每个测试提交都会被标记。

所以你的git树看起来像这样:

---O---O---O---O---O---O--- Release branch.
        \               \
         O               O
        test-2016-01    test-2016-02

因此,每次运行测试时,他们都会针对标记为test-<release id>

的提交进行操作

另一种方法是,编写测试代码,提交它,运行测试,然后使用测试代码为补丁应用反向差异(这非常难看)。

---O---O---T---T'

其中T是您的测试提交和T&#39;是不是反过来了。

第三种方法是,将测试代码和生产代码保存在单独的回购中,假设您没有为了测试而修改任何生产代码。如果是的话,你并没有真正测试正确的事情......

第四种也许是最好的方法是将测试和测试框架/代码留在主回购中。如果你必须重新构建代码/ repo以使其更加模块化以进行测试,那么这是一个很好的时间投入。