Subversion - друг программиста

AgentSIB
[attachment=0]Subversion.png[/attachment]

Subversion — свободная централизованная система управления версиями, созданная в 2000 году компанией CollabNet Inc.
Название Subversion является игрой слов: его можно перевести и как «подверсия» (что говорит о назначении программы), и как «свержение» (программа разработана специально для замены широко распространённой, но явно устаревшей системы CVS *). Subversion обладает всеми основными функциями CVS (хотя некоторые из них выполняет другими способами) и свободна от ряда её недостатков.

Более подробное определение можно прочитать по ссылке *.

Subversion предоставляет следующие возможности:
  1. Контроль изменений каталогов
    CVS следит только за историей отдельных файлов, тогда как Subversion использует «виртуальную» файловую систему с возможностями управления версиями, которая способна отслеживать изменения во времени целых структур каталогов. Под управление версиями попадают и файлы, и каталоги.
  2. Настоящая история версий
    CVS контролирует лишь изменения файлов, поэтому такие операции, как копирование и переименование, хотя и относящиеся к файлам, но по существу являющиеся изменениями каталогов, содержащих эти файлы, в CVS не поддерживаются. Кроме того, в CVS вы не можете заменить файл, помещённый под управление версиями, другим файлом с тем же именем, но совершенно иным содержанием, возможно никак не связанным со старым объектом, без наследования таким элементом всей истории изменений. Subversion делает возможным добавление, удаление, копирование и переименование как файлов, так и каталогов. При этом каждый вновь добавленный файл начинает жизнь с чистого листа, сохраняя собственную историю изменений.
  3. Атомарная фиксация изменений
    Каждый набор изменений либо попадает в хранилище целиком, либо не попадает туда вовсе. Это позволяет разработчикам создавать и фиксировать изменения логически оправданными кусками, предотвращая тем самым проблемы, которые могут возникать в тех случаях, когда только часть необходимых изменений помещается в хранилище успешно.
  4. Метаданные с версиями
    Каждый файл и каталог имеет собственный набор свойств, представленных в виде названия и значения. Вы можете создавать и сохранять любые необходимые пары названий свойств и их значений. Свойства файлов точно так же находятся под управлением версиями, как и их содержимое.
  5. Выбор средств доступа к хранилищу по сети
    В Subversion используется абстракция доступа к хранилищу, что позволяет реализовывать самые разные сетевые механизмы доступа. Subversion может быть подключена к серверу HTTP Apache в виде модуля, что даёт ей огромное преимущество с точки зрения устойчивости работы и способности к взаимодействию, а также предоставляет прямой доступ к существующим возможностям этого сервера, включая установление личности, проверку прав доступа и сжатие информации при передаче. Кроме того, имеется лёгкий самостоятельный сервер Subversion, который использует собственный протокол взаимодействия с клиентами и может легко туннелировать данные через SSH.
  6. Единый способ работы с данными
    Subversion обнаруживает различия между файлами с помощью специального бинарного алгоритма, который одинаково работает как с текстовыми, так и с бинарными файлами. Файлы записываются в хранилище в сжатом виде независимо от их типа, а различия между отдельными версиями могут передаваться по сети в обоих направлениях.
  7. Эффективные ветки и метки
    Плата за использование веток и меток не должна быть пропорциональна размеру проекта. Subversion создаёт ветки и метки путём простого копирования проекта, используя механизм, похожий на жёсткие ссылки в файловых системах. Благодаря этому, операции по созданию веток и меток занимают немного времени.
  8. Дружелюбность по отношению к разработчикам
    Subversion не имеет исторического багажа. Она реализована в виде набора динамических библиотек на языке C, API которых хорошо известен. Это делает Subversion чрезвычайно удобной для сопровождения системой, пригодной для взаимодействия с другими приложениями и языками программирования.
Полная техническая документация доступна по ссылке *.

Рекомендуемое мною ПО:
  • Windows:
    Сервер: VisualSVN *
    Клиент: TortoiseSVN * (Распространяется свободно, имеет русский язык и мануалы, идет как поднастройка Explorer, работает на ура даже с Windows 7)

    Linux:
    Сервер: обычно входит почти во все репозитарии, однако если его нет - вот страница загрузки *.
    Клиент: доступен по той же ссылке.

    Кроме того, клиент уже интегрирован во многие среды разработки, например, такие как Eclipse, NetBeanse, Zend Studio, Qt Studio и тп.
От себя: пользуюсь данной системой уже несколько месяцев для рабочих и домашних проектов, минусов нет, одни только полюсы. Если интересна данная тема - могу написать подробней, включая статьи настройки. Пару статей об SVN вы так же можете найти у меня в блоге *.

----
* - ссылки, помеченные звездочкой, являются внешними для пользователей Domolink
Вложения
Subversion.png
Вернуться к началу