
Заключение
В заключении сравним SVN с другими системами контроля версий: CVS и GIT.
Сначала начнём с CVS. Так как Subversion можно считать преемницей хороших качеств CVS, минусов по сравнению с этой системой нет. Но Subversion в сравнении с CVS обладает рядом преимуществ:
1.Не нужно явно указывать бинарный файл, или текстовый;
2.Появились атрибуты файлов и каталогов (через них, например можно сделать файл исполняемым для Linux из Windows);
3.Отслеживается работа с директориями и перемещением файлов;
4.Атомарные коммиты;
5.Версии всех файлов имеют единую сквозную нумерацию — ревизию.
Cамое большое отличие между Subversion и Git это то, что Subverion является централизованной СКВ и только основной репозиторий хранит полную историю изменений, в то время как все пользователи Git имеют у себя в наличии полную информацию об изменениях. Думается, что это одно из преимуществ Git, но данная особенность имеет и недостатки. С учетом того, если вы будете хранить исходный код в Git, то вам следует задуматься о безопасности настолько, насколько это возможно. В распределенных системах чрезвычайно сложно обезопасить ваши данные от несанкционированного распространения, потому что существует множество копий этих данных.
Поддержка различных платформ: преимущество Subversion: Как я уже сказал ранее, один из факторов, который необходимо учитывать при выборе СКВ - это операционная система, под управлением которой вы хотите получить доступ к вашим данным. В то время, как Subversion отлично работает на всех операционных системах (имеется в виду Linux/Windows и Mac OS - прим. пер.), Git имеет определенные проблемы в работе под управлением Windows. В ОС Windows имеется существенная нехватка качественных приложений с графическим интерфейсом для доступа к репозиториям Git, поэтому использование этой СКВ все еще остается уделом пользователей Linux/UNIX и некоторых пользователей Mac.
Простота использования в совокупности с пользовательским интерфейсом: преимущество Subversion:
На данный момент Subversion имеет обширный диапазон инструментов с графическим интерфейсом пользователя в отличие от Git. Например, плагины Subversion доступны для большинства основных IDE на всех платформах, существует расширение для Windows Explorer и набор родных инструментов для Windows и Mac OS X.
Работа с ветвями: преимущество Git:
Одно из огромнейших преимуществ систем контроля версий - это возможность создавать ветви, отходящие от основной. В Git ветвь - это не пустое слово. Ветви используются очень часто, некоторые разработчики используют их несколько раз в день. Вы создаете ветвь для каждой новой фитчи или исправления ошибки, и после того, как вы сделаете задуманное, вы безболезненно выполняете слияние веток. В Subversion тоже легко создать ветку, однако в случае конфликта при слиянии вы окажетесь в неприятной ситуации. Вам придется вручную разрешать возникшие конфликты в измененных файлах.
Быстродействие и использование свободного места: преимущество Git Когда приходит время сравнивать скорость обработки информации и место, занимаемое для хранения мета-информации СКВ, Git безоговорочно побеждает.
Требования к свободному месту для Subversion для хранение репозитория являются очень большими в сравнении с Git. Для примера возьмем проект Mozilla, который требует 12 Гб под репозиторий Subversion для хранения исходного кода с десятилетней историей.
Причина такого гигантского отличия в способе хранения изменений в обеих системах. Subversion хранится две версии каждого файла; одна версия - с которой пользователь работает в данный момент, и другая, скрытая в директории .svn/ - для выполнения таких операций, как получение статуса файла, получение изменений по отношении к текущему файлу и фиксация изменений.
Тем не менее SVN с успехом используется и по сей день. Приведём в качестве примера показательный рисунок.
Рисунок 3. Использование систем контроля версий
На рис. 3 показан график использования популярных систем контроля версий: Subversion, GIT, Mercurial, Baazar. Вертикальная ось показывает кол-во инсталяций систем управления версиями пользователями, которые использовали дистрибутив Debian. На горизонтальной оси отмечен временной интервал 2004 – 2012 гг. Статистика собиралась с помощью утилиты popularity-contest. После установки popcon еженедельно отсылает в Debian по электронной почте информацию об установленных в системе пакетах и времени последнего использования. Мы видим, что Subversion относительно недавно потерял лидерство, но он удерживал его очень долгое время.