Переименование / перемещение файлов! В целом, я сомневаюсь, что это убедительная причина для перехода, но это имело серьезные последствия для проекта, в котором я когда-то был.
Смотрите, CVS не позволяет вам переименовывать / перемещать файлы. Если вы переименуете или переместите файл, CVS считает, что старый один исчез, а новый появился, и что между ними нет никакой связи. Несмотря на отсутствие реальной истории изменений, вы должны знать, что «Файл X» на самом деле был «Файл Y», если вы вернетесь к какой-то определенной дате. Да, и номера версий сбрасываются.
Проект, над которым я работал, был Java-приложением с открытым исходным кодом, которое только начинало с малого, росло и росло, так что все было просто в пакете «core. *». Когда пришло время пересмотреть и поместить вещи в хорошую иерархию пакетов ... ну, CVS сбросил всю информацию о версии, потому что, насколько знал он , мы просто удалили все "ядро" / "и создал кучу новых файлов из воздуха.
Предположительно, SVN осведомлен о файлах, перемещаемых / переименованных, поэтому он не нарушает происхождение версий. Не знаю, делает ли это Git.