Разница между CVS и SVN

CVS против SVN

CVS (Concurrent Versions System) и SVN (SubVersioN) - это две файловые системы контроля версий, которые широко используются командами, работающими над одним проектом. Эти системы позволяют сотрудникам отслеживать внесенные изменения и знать, кто разрабатывает, какую и следует ли применять ветвь к основной соединительной линии или нет. CVS намного старше двух и был стандартным инструментом совместной работы для многих людей. SVN намного новее и вносит множество улучшений для удовлетворения потребностей большинства людей.

Вероятно, самое большое улучшение в SVN - это добавление атомарных коммитов. Атомные коммиты позволяют применять каждый коммит полностью или не применять его вообще. Это может быть очень полезно, когда сервер падает в середине коммита. С SVN фиксация может быть отменена, пока CVS не может отменить частичную фиксацию. Еще одним дополнением является возможность аккуратно переименовывать и перемещать файлы в хранилище. С SVN файлы, которые были переименованы или удалены, все еще несут свою историю изменений и метаданные. CVS также не может вносить какие-либо новые изменения в родительские репозитории, хотя это может быть достигнуто в SVN с использованием некоторых инструментов. Эти функции просто не поддерживаются CVS или не являются частью его первоначального дизайна и часто вызывают много проблем у некоторых людей..

С точки зрения доступа к любому из них через сеть, оба поддерживают проприетарные протоколы, которые могут быть туннелированы через соединение SSH для обеспечения безопасности информации, передаваемой по сети. SVN добавляет немного больше с WebDAV + DeltaV. Этот протокол основан на HTTP и HTTPS и предоставляет пользователям еще один вариант подключения к SVN..

Для большинства людей, которые только начинают работать с SVN и CVS, SVN - лучший и логичный вариант между ними. Он предоставляет пользователю необходимый набор функций в соответствии с его потребностями. Единственная причина продолжать использовать CVS, если вы застряли в устаревшей системе, которую довольно сложно перенести в систему SVN..

Резюме:
1. SVN более новый и более продвинутый по сравнению со значительно более старым CVS
2. SVN допускает атомарные коммиты, а CVS - нет
3. SVN позволяет переименовывать и перемещать, а CVS - нет.
4. SVN позволяет распространять изменения в родительские репозитории, а CVS - нет.
5. SVN поддерживает два сетевых протокола, а CVS поддерживает только один