Subversion
Материал из Википедии — свободной энциклопедии
Логотип Subversion
|
|
Тип | система управления версиями |
Разработчик | CollabNet, Inc. |
ОС | Linux, Windows, Mac OS X, FreeBSD |
Текущая версия | 1.4.3 — 25 января 2007 |
Лицензия | Аналог Apache/BSD |
Сайт | Домашняя страница Subversion |
Subversion[1] — свободно распространяемая система управления версиями с открытым кодом. Subversion разработана специально для замены CVS, самой распространённой открытой системы управления версиями. Она обладает всеми основными функциями CVS (хотя некоторые из них выполняет другими способами) и лишена ряда её недостатков.
Subversion часто называют «svn», по названию клиентской программы, входящей в её дистрибутив.
Содержание |
[править] Общие сведения
Subversion — централизованная система. Данные хранятся в едином хранилище. При сохранении новых версий используется дельта-компрессия, т. е. система находит отличия новой версии от предыдущей и записывает только их, избегая ненужного дублирования данных. Хранилище может располагаться на локальном диске или на сетевом сервере. К локальному хранилищу клиент Subversion обращается непосредственно. Для доступа к удалённому серверу может использоваться собственный сетевой протокол или стандартный протокол WebDAV, поддерживаемый с помощью специального модуля для веб-сервера Apache.
Клиенты копируют файлы из хранилища, создавая локальные рабочие копии, затем модифицируют их и публикуют изменения в хранилище. Несколько клиентов могут одновременно обращаться к хранилищу. При использовании доступа с помощью WebDAV также поддерживается прозрачное управление версиями — если любой клиент WebDAV открывает для записи и затем сохраняет файл, хранящийся на сетевом ресурсе, то автоматически создаётся новая версия.
[править] Отличия от CVS
- Subversion отслеживает версии не только файлов, но и каталогов.
- Если изменения сделаны в нескольких файлах и каталогах, они публикуются как одна транзакция. Это значит, что либо в хранилище попадают все изменения, либо состояние хранилища не изменяется.
- При любых обновлениях версий между клиентом и сервером передаются только различия между файлами.
- Subversion поддерживает копирование, перемещение и переименование файлов с сохранением истории изменений.
- С каждым файлом и каталогом может быть связан произвольный набор свойств, состоящих из названия и значения. Свойства тоже находятся под управлением версиями.
- Subversion одинаково эффективно работает как с текстовыми, так и с двоичными файлами.
- Начиная с версии 1.2, поддерживается необязательная блокировка файлов.
- В Subversion нет меток (tag) и веток (branch), как таковых (см. Словарь). Вместо них используется иерархия каталогов — для каждой ветки или метки создаётся отдельный каталог. Создание таких каталогов — быстрая и дешёвая операция, потому что данные не дублируются, вместо этого публикуется новая версия, отличающаяся от предыдущей лишь расположением файлов.
[править] Использование
По состоянию на 2006 год Subversion уступает по распространённости CVS, однако её можно назвать наиболее популярной альтернативой этой традиционной системе. Многие сообщества разработчиков открытого программного обеспечения перешли на использование Subversion. В их числе такие известные проекты как Apache Software Foundation, KDE, GNOME, GCC, MediaWiki, Python, Samba, Mono и многие другие.
[править] Примечания
- ↑ Sub- (под-) + version (версия). В то же время, англ. subversion — свержение.
[править] Ссылки
[править] Документация
- Домашняя страница Subversion
- Subversion по-русски
- Книга «Управление версиями в Subversion», Бен Коллинз-Сассман, Брайан У. Фитцпатрик, К. Майкл Пилато.
[править] Клиенты и плагины
- Клиенты и плагины для Subversion
- RapidSVN — кросс-платформенный клиент, написанный на C++ с использованием wxWidgets
- eSvn — кросс-платформенный клиент, основанный на Qt
- TortoiseSVN — расширение оболочки Windows, которое представляет собой графический клиент, работающий независимо от интегрированной среды.
- svnX — клиент для Mac OS X
- SCPlugin — клиент для Mac OS X
- AnkhSVN — плагин для Visual Studio .NET.
- PushOK SVN SCC proxy — ещё один плагин для Visual Studio .NET.
- Subclipse — плагин для среды разработки Eclipse
- VisualSVN — коммерческий продукт, реализующий простую и надежную интеграцию с Visual Studio .NET 2003 и 2005. Использует TortoiseSVN в пользовательском интерфейсе.
- DelphiSVN — плагин для среды разработки Borland Delphi
- KDESvn — клиент для KDE
- SmartSVN — кросс-платформенный клиент, написанный на Java
[править] Публичные хранилища SVN
- http://sourceforge.net — наиболее популярный хостинг проектов с открытым исходным кодом
- http://opensvn.csie.org
- http://svn.berlios.de/wsvn
- Google Code