Subversion

Матеріал з Вікіпедії — вільної енциклопедії.

Перейти до: навігація, пошук
Subversion
Тип: управління версіями
Розробник: CollabNet
Перший випуск: 20 жовтня 2000
Стабільний випуск: 1.5.6 / 27 лютого 2009
Мова програмування: C
ОС: крос-платформовий
Ліцензія: Apache License
Сайт: subversion.tigris.org

Subversion [1] — вільна система управління версіями.

Subversion розроблена спеціально для заміни CVS, найпоширенішої відкритої системи управління версіями. Вона має всі основні функції CVS (хоча деякі з них виконує іншими способами) і вільна від ряду її недоліків. Subversion часто називають «svn», по назві клієнтської програми, що входить в її дистрибутив.

Зміст

[ред.] Загальні відомості

Subversion — централізована система. Дані зберігаються в єдиному сховищі. При збереженні нових версій використовується дельта-компресія, тобто система знаходить відмінності нової версії від попередньої і записує тільки їх, уникаючи непотрібного дублювання даних. Сховище може розташовуватися на локальному диску або на мережевому сервері. До локального сховища клієнт Subversion звертається безпосередньо. Для доступу до віддаленого сервера може використовуватися власний мережевий протокол або стандартний протокол WebDAV, підтримуваний за допомогою спеціального модуля для веб-сервера Apache.

Клієнти копіюють файли з сховища, створюючи локальні робочі копії, потім модифікують їх і публікують зміни в сховищі. Декілька клієнтів можуть одночасно звертатися до сховища. При використанні доступу за допомогою WebDAV також підтримується прозоре управління версіями — якщо будь-який клієнт WebDAV відкриває для запису і потім зберігає файл, що зберігається на мережевому ресурсі, то автоматично створюється нова версія.

[ред.] Відмінності від CVS

  • Subversion відстежує версії не тільки файлів, але і каталогів.
  • Якщо зміни зроблені в декількох файлах і каталогах, вони публікуються як одна транзакція. Це означає, що або в сховищі потрапляють всі зміни, або стан сховища не змінюється.
  • При будь-яких оновленнях версій між клієнтом і сервером передаються тільки відмінності між файлами.
  • Subversion підтримує копіювання, переміщення і перейменування файлів із збереженням історії змін.
  • З кожним файлом і каталогом може бути зв'язаний довільний набір властивостей, що складаються з назви і значення. Властивості теж знаходяться під управлінням версіями.
  • Subversion однаково ефективно працює як з текстовими, так і з двійковими файлами.
  • Починаючи з версії 1.2, підтримується необов'язкове блокування файлів.
  • У Subversion немає міток (tag) і гілок (branch), як таких. Замість них використовується ієрархія каталогів — для кожної гілки або мітки створюється окремий каталог. Створення таких каталогів — швидка і дешева операція, тому що дані не дублюються, натомість публікується нова версія, що відрізняється від попередньої лише розташуванням файлів.

[ред.] Використання

Subversion поступово стає поширенішим продуктом контролю за версіями, витісняючи CVS. Багато співтовариств розробників відкритого програмного забезпечення перейшли на використання Subversion. У їх числі такі відомі проекти як Apache Software Foundation, KDE, GNOME, GCC, MediaWiki, Python, Samba, Mono і багато інших.

Згідно звіту Forrester Research за 2007, Subversion став одноосібним лідером в категорії Standalone Software Configuration Management (SCM) і має потужні позиції в категорії Software Configuration and Change Management (SCCM) [2].

[ред.] Виноски

  1. англ. Sub- (під-) + англ. version (версія). Водночас англ. subversion — скидання, усунення.
  2. The Forrester Wave: Software Change and Configuration Management, Q2 2007. Forrester Research.

[ред.] Посилання

[ред.] Документація

[ред.] Клієнти і плагіни

[ред.] Публічні сховища SVN

Особисті інструменти