Следует ли вносить изменения в код отдельно от соответствующего изменения в наборе тестов? - PullRequest
11 голосов
/ 03 июня 2011

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

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

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

Ответы [ 2 ]

4 голосов
/ 03 июня 2011

Определенно сохраните эти изменения (код и модульное тестирование) как один коммит: SCM также имеет возможность воспроизводить заданное состояние, которое включает как программу, так и ее тесты.

Если вам нужно просмотреть только изменения кода, выполните команду git diff только на src, а не на tst.
Поскольку эти связанные изменения остаются в одном коммите, вы полностью избегаете проблемы деления пополам.

Короче, будь проще;)

0 голосов
/ 03 июня 2011

Если хотите, вы можете хранить их в отдельных коммитах в ветке разработки.После каждой пары коммитов объединяйтесь в ветку возможностей.Это должно дать вам возможность сделать так или иначе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...