Если вы хотите знать, для чего нужны атомарные коммиты, представьте, что вы объединяете ветку в ствол на вашем диске. Вы начинаете утром и после обеда все готово, все компилируется, и все модульные тесты выполняются успешно. Затем вы фиксируете 200+ файлов, измененных во время этого слияния.
В SVN фиксация завершается успешно, и все 200+ файлов фиксируются за один раз, или фиксация завершается неудачно, и в хранилище вообще не было никаких изменений. (Больше нечего сказать по этому поводу. Просто так должно быть всегда.)
В CVS, в котором нет атомарных коммитов, может случиться так, что ваш коммит прервется после 150 файлов, потому что кто-то наткнулся на ваш сетевой кабель, а оставшиеся 50+ файлов не фиксируются, оставляя хранилище в промежуточном состоянии , Пока вы пытаетесь подключить сетевой кабель, кто-то из вашей команды проверяет другой набор изменений. Этот набор изменений не связан с теми, которые вы уже зарегистрировали, поэтому фиксация другого человека будет успешной. Однако изменения несовместимы. Теперь команда застряла с хранилищем, содержащим код, который даже не компилируется, не говоря уже о прохождении любого теста. Что еще хуже: у вас двоих есть менеджер команды, который дышит вам в шею, чтобы как можно быстрее исправить эти несовместимые изменения, чтобы остальная часть команды могла прекратить играть в Quake и вернуться к работе.
Удивительно, но такие сценарии не так маловероятны, как может показаться. Я был там несколько раз и получил свою паршивую рубашку.