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

Wil*_*ell 12 git workflow

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

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

有没有办法做两个不同的提交,而不必向后弯曲,以防止bisect失败其中一个?(例如,必须明确提及要跳过的提交)

Von*_*onC 5

明确地将这些更改(代码和单元测试)保留为一次提交:SCM也是关于能够重现给定状态的信息,其中包括程序及其测试。

如果您只需要检查代码更改,则src仅对git diff进行检查,而不对tst
由于这些链接的更改保留在一次提交中,因此您可以完全避免二等分问题。

简而言之,保持简单;)