По моему опыту, важно как минимум попробовать , чтобы не фиксировать критические изменения. Тем более, если команда больше или темпы развития быстрее. Идея состоит в том, чтобы все члены команды были в курсе последних изменений. Никто не должен бояться делать svn update
после каждого коммита члена команды .
Это невозможно, если в последней версии регулярно появляются ошибки компиляции. Даже неудачный тест может раздражать, потому что не всегда легко определить, была ли проблема вызвана вашими незафиксированными изменениями или теми, которые вы только что получили от svn update
. Работа останавливается, так как все пытаются понять, почему вдруг все перестает работать.
Внесение изменений также повлияет на вашу способность разделять историю исходного кода . Поэтому, даже если вы работаете в одиночку или в ветвях функций, все равно может быть полезно их избежать.
Политика, позволяющая избежать критических изменений, не должна противоречить регулярным небольшим коммитам. Большие изменения почти всегда можно разделить на список небольших задач, каждая из которых может быть выполнена с фиксацией небольшого размера, которая не нарушает сборку. Это имеет дополнительное преимущество в том, что конфликты уменьшаются. Я склонен помещать подобные вещи в мои сообщения коммитов для таких небольших задач:
- к фиксации xyz : рефакторинг fuzz при подготовке аспект foo
- к исправлению xyz : аспект foo теперь работает
- исправлено xyz : аспектная панель теперь работает