是否应该将代码更改为与测试套件相应的更改?

时间:2011-06-03 14:42:32

标签: git workflow

代码是否应该更改,并且在一次提交中对测试套件进行相应的更改,还是分成两部分?考虑一个错误修复的情况,它会导致预期输出发生微小变化,从而迫使测试套件发生微小变化。在同一次提交中同时进行更改非常方便,因为它使审阅者明确了解输出中的更改。另一方面,有时您可能只想查看源的差异,或者想要输出到预期输出的差异,如果提交是分开的,则更容易做到这一点。此外,这两件事在逻辑上是截然不同的,因此进行不同的提交是有意义的。

我希望能够进行两次不同的提交,但不知何故将两个提交以某种方式链接在一起(这样我就可以挑选,恢复等两个提交作为原子单元)。 此外,如果进行了两次不同的提交,那么测试套件将在第一次提交时失败(除非引入第三次提交以放松测试套件),使未来的二等分变得痛苦。未来bisects失败的问题通常鼓励我进行单个提交,但是提交应该是逻辑上不同的单元,并且对代码的提交在逻辑上不同于对测试套件中的预期输出的提交。

有没有办法进行两次不同的提交,而不必向后弯腰以防止bisect失败? (例如,必须明确提及要跳过的提交)

2 个答案:

答案 0 :(得分:4)

明确地将这些更改(代码和单元测试)保持为一次提交:SCM还能够重现给定状态,并且包括程序及其测试。

如果您只需要查看代码更改,请仅在src上执行git diff,而不是tst

简而言之,保持简单;)

答案 1 :(得分:0)

如果您愿意,可以将它们保存在开发分支的单独提交中。在每对提交之后,合并到功能分支中。这应该让你有能力做任何一种方式。