Следует ли фиксировать изменение кода отдельно от соответствующего изменения набора тестов?

Следует ли изменение кода и соответствующее изменение набора тестов сделать за один коммит или разделить на два? Рассмотрим случай исправления ошибки, которое вызывает небольшое изменение ожидаемого результата, вызывая незначительное изменение в наборе тестов. Чрезвычайно удобно иметь оба изменения в одном коммите, так как он дает обозревателю очевидным, что именно изменяется в выводе. С другой стороны, иногда вам может потребоваться просто просмотреть различия в источнике или различия в ожидаемом выходе, и это намного проще сделать, если коммиты разделены. Кроме того, эти две вещи логически различны, поэтому имеет смысл делать отдельные коммиты.

Мне бы хотелось иметь возможность делать два разных коммита, но каким-то образом эти два коммита каким-то образом связаны друг с другом (чтобы я мог pick, revert и т. д. оба фиксируются как атомарная единица). Кроме того, если сделаны два разных коммита, то тестовый набор завершится неудачно при первом коммите (если не будет введен третий коммит, чтобы расслабить тестовый набор), что сделает будущее деление пополам болезненным. Проблема будущих сбоев пополам обычно побуждает меня сделать один коммит, но коммиты должны быть логически разными единицами, а фиксация кода логически отличается от фиксации ожидаемого результата в наборе тестов.

Есть ли способ сделать это. сделать две отдельные фиксации и не наклоняться назад, чтобы предотвратить сбой bisect на одном из них? (например, необходимость явного упоминания коммитов пропуска)

12
задан William Pursell 3 June 2011 в 14:42
поделиться