Одна из причин, по которой программисты предпочитают SVN, а не CVS, заключается в том, что первая допускает атомарные коммиты? Что это значит ?
svn
versioning
cvs
Фанат
источник
источник
Ответы:
Это означает, что когда вы делаете коммит в систему контроля версий, либо все, что вы хотите коммитить, уходит, ИЛИ ничего не делает.
В CVS, когда вы пытаетесь зафиксировать, возможно, что фиксация будет успешной в нескольких файлах, затем произойдет сбой в нескольких других (потому что они изменились). Это оставляет репозиторий в плачевном состоянии, потому что половина вашего коммита отсутствует, и вполне вероятно, что вы оставили вещи в состоянии, когда они не будут компилироваться или хуже. Теперь вам нужно поторопиться и интегрировать любые изменения, чтобы вы могли зафиксировать другие файлы, прежде чем кому-то еще понадобится обновить и получить ваш сломанный набор изменений.
В SVN этого не произойдет - SVN либо зафиксирует все, что вы изменили, либо провалит весь набор изменений. Таким образом, вы никогда не оставите хранилище в нерабочем состоянии из-за проблем с фиксацией.
источник
Это объясняется, например, в пока-CVS. Меня подорвала статья, написанная Энди Лестером :
Тот факт, что CVS вынуждает программиста немедленно исправить слияние, настолько же непродуктивен, насколько это возможно. По сравнению с этим, возможность отложить / отменить / тщательно объединить изменения является существенным преимуществом.
Другие преимущества SVN перед CVS, описанные в статье выше:
источник
Это означает, что все изменения во всех файлах фиксируются в одной транзакции, поэтому либо все успешно, либо нет.
Это означает, что вы с меньшей вероятностью получите частичные правки, зарегистрированные в репозитории, что приведет к сбою сборок. Вы все еще можете заставить людей забыть проверить все соответствующие файлы, но это проблема процесса, а не проблема системы управления версиями.
источник