Уроки Коммент.

Создание игр » Toolset, Теория » Subversion

Subversion

Subversion — это система управления версиями,являющаяся не только бесплатной, но и имеющая отрытый исходный код. Subversion позволяет управлять хранилищем с файлами и каталогами, а так же отслеживать сделанные в них изменения, хранить и просматривать историю этих изменений – это позволяет, например, в любой момент восстановить более ранние версии данных, даёт возможность изучить историю всех изменений, произвести сравнение разных версий одного и того же файла и так далее. Subversion появилась в далёком 2001 году, развивалась все эти годы и потому, на данный момент, она по праву считается одной из лучших и наиболее мощных систем контроля версий.

Subversion может работать через сеть, что позволяет получать доступ к её хранилищу одновременно с разных компьютеров (рабочих мест) и вести параллельную работу многих людей. Это даёт возможность большому количеству людей, не зависимо от их местоположения, совместно работать над единым проектом (набором данных) и поощряет сотрудничество. При этом не нужно опасаться, что допущенные ошибки существенно повлияют на конечное качество разрабатываемого продукта, ведь благодаря сохранению истории изменений, даже если при изменении данных будут допущены ошибки или случайно удалены какие-то важные файлы, всегда можно сделать откат изменений как всего проекта, так и отдельных файлов и/или папок к прежнему состоянию.

Основные возможности Subversion

Возможности Subversion удобнее всего рассматривать, ведя разговор о тех её улучшениях, которые были достигнуты по сравнению с CVS. Хотя, если же вы совсем не имеете представления об управлении версиями, то Вам достаточно будет знать, что управление версиями – это хорошо, надёжно и, главное, удобно. Если кратко, то ключевые возможности Subversion это:

  • Контроль изменений каталогов
  • Настоящая история версий
  • Метаданные с версиями
  • Атомарная фиксация изменений
  • Выбор средств доступа к хранилищу по сети
  • Единый способ работы с данными
  • Дружелюбность по отношению к разработчикам

Основные части Subversion

По большому счёту, как и любой клиент-серверный продукт, Subversion состоит из трёх компонент:

  • Сервер Subversion
  • Клиент Subversion (их много разных)
  • Утилиты для управления сервером

Думаю, что назначение каждой из этих компонент Subversion должно быть понятно из названия.

Хранилище Subversion

Subversion представляет из себя централизованную систему для совместного использования информации (файлов, папок, мета-данных). Фактически, это хранилище, являющееся центром хранения данных. Хранилище содержит в себе информацию в виде дерева файлов и папок. Любое количество клиентов может одновременно подключаться к хранилищу и читать или записывать(изменять) файлы в хранилище. Записывая данные, клиент делает информацию доступной для остальных; читая данные, клиент получает информацию от других.

Хранилище Subversion является разновидностью файл-сервера, но не совсем обычного — оно запоминает каждое внесенное изменение: изменение любого файла, изменения в дереве каталогов, добавление, удаление и реорганизация файлов и каталогов – всё это запоминается хранилищем и в будущем эту историю изменений можно просматривать и использовать.

При чтении данных из хранилища клиент обычно видит только последнюю версию дерева файлов, но, если необходимо, клиент имеет и возможность просмотреть предыдущие версии (состояния) виртуальной файловой системы хранилища. Например, клиент может запросить такие данные как, «Что содержал этот каталог в прошлую среду?» или «Кто был последним изменявшим этот файл и какие вносились изменения?».

Рабочая копия Subversion

Рабочая копия Subversion представляет собой обычное дерево каталогов на вашем компьютере, содержащее набор файлов. Изначально вы получаете эту копию с сервера Subversion и, после этого, Вы можете по своему усмотрению редактировать эти файлы и, если это исходные коды, вы можете обычным способом скомпилировать из них программу. Ваша рабочая копия — это ваше личное рабочее пространство и к ней имеете доступ только Вы и больше никто. Subversion как не смешивает ваши изменения и изменения, вносимые другими участниками проекта, и не делает доступными для других изменения, сделанные вами, пока вы сами не прикажете сделать это (не зальёте изменение, сделанные Вами, на сервер). Вы даже можете иметь несколько рабочих копий одного и того же проекта – в этом плане нет никаких ограничений.

После того, как вы изменили файлы в вашей рабочей копии и убедились в том, что они корректно работают (например, программа компилируется и работает нормально), Subversion даёт возможность «публикации» (записи в хранилище, коммита) ваших изменений, после чего они станут доступными для всех участников проекта. Если другие участники проекта опубликовали свои изменения, Subversion даёт возможность для объединения (путем чтения информации из хранилища) этих изменений в вашу рабочую копиею.

Рабочая копия содержит несколько дополнительных файлов, созданных клиентом Subversion, которые помогают ей при выполнении этих команд (коммиты, чтение). В частности, каждый каталог в вашей рабочей копии содержит подкаталог с именем .svn который называется служебным каталогом рабочей копии. Файлы в служебном каталоге помогают Subversion определить какие файлы рабочей копии содержат неопубликованные изменения, и какие файлы устарели по отношению к файлам других участников.

Хранилище Subversion запросто может содержать файлы (или исходный код) не одного, а одновременно нескольких проектов, при этом каждому пользователю могут быть заданы различные права доступа, как к к отдельным проектам, так и к отдельным файлам/папкам. Обычно каждый проект в Subversion представляется в виде подкаталога файловой системы хранилища – при таком подходе, пользовательская рабочая копия обычно соответствует отдельному подкаталогу хранилища.

Клиент Subversion

Я лично рекомендую вам использовать два клиента Subversion:

  • ankhsvn – клиент, интегрирующийся непосредственно в среду VisualStudio (ооочень удобно)
  • и tortoisesvn – клиент для работы с хранилищем непосредственно из проводника Windows (часто это тоже бывает нужно, к тому же, он гораздо более функционален, чем ankhsvn)

Сайт Subversion

Сам Subversion Вы можете скачать на его родном сайте: subversion.apache.org – там вы найдёте и сам Subversion и обширную документацию по нему.

Кроме того, есть даже онлайн-книга по Subversion на русском языке: svnbook – весьма рекомендую к прочтению.

В следующем уроке я расскажу Вам как использовать Subversion для работы.





Раздел: Toolset, Теория · Теги: subversion

4 комментариев на "Subversion"
  1. Scripter пишет:

    ура, новые статьи, спасибо

  2. Сергей (DrMGC) пишет:

    Лучше бы про Git рассказал

  3. Сергей пишет:

    Спасибо за статьи, но я вместо TortouseSVN для Subversion использую StrongSVN, он хороший, удобный и понятный клиент для subversion, правда альфа-версия – но для моих нужд хватает

Оставить комментарий

*

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>