为什么我要在一次提交中组合代码和测试?

时间:2013-03-26 14:43:24

标签: version-control

假设我写了代码的原子变化。我还写了一些测试,以确保更改工作并继续工作。

认为我应该将代码更改与测试一起提交。

PRO:

  • 这可以确保(尽可能)分支的每个变更集都会导致运行代码并通过测试。
  • 它记录了这些测试“属于”我所做的代码更改。

CON:

  • 我可能希望在未来某个时候退出测试时撤销更改

有什么理由以这种或那种方式做更多的事情? 有没有一种策略曾经咬过你?究竟是怎么回事?

有点相关:Should change to code be committed separately from corresonding change to test suite?

2 个答案:

答案 0 :(得分:2)

我唯一的规则是确保在签入之前构建代码。

是的,理想情况下,您要检查原子位代码。但是,你如何定义原子?然后,如果以后需要更改其中一个位,会发生什么?您的更改不再是一次提交。

答案 1 :(得分:1)

  

认为我应该将代码更改与测试一起提交。

我从不这样做,但如果我使用非分支SCM,我会这么做。

在分支SCM(我曾与mercurial和git合作过)中,这是一个非问题。

我每次开始工作时都会使用不同的分支;我很多次都有本地分支提交,当我转移到其他东西一段时间时,或者在我开始重大代码更改之前只需要一个备份点时,只提交未完成的更改(甚至不编译)。我知道,当我创建它们时,大多数这些中间提交将永远不会再被检出。它们不会影响任何东西,并且在需要时非常有用。

当我拥有编译和测试成功运行的代码时,我只会合并分支。