Loading AI tools
З Вікіпедії, вільної енциклопедії
Subversion[1] (з 2010 називається Apache Subversion)[2] — вільна система керування версіями.
Тип | система керування версіями |
---|---|
Автор | CollabNetd |
Розробник |
спільнота та розробники з CollabNet, Elego, VisualSVN |
Перший випуск | 20 жовтня 2000 |
Стабільний випуск | 1.9 (5 серпня 2015 ) |
Операційна система | крос-платформовий |
Мова програмування | C |
Ліцензія | Apache License |
Репозиторій | svn.apache.org/repos/asf/subversion/trunk/ |
Вебсайт | subversion.apache.org |
Subversion розроблено спеціально для заміни CVS, найпоширенішої відкритої системи керування версіями. Вона має всі основні функції CVS (хоча деякі з них виконує іншими способами) і вільна від ряду її недоліків. Subversion часто називають «svn», за назвою клієнтської програми, що входить в її дистрибутив.
Subversion — централізована система. Дані зберігаються в єдиному сховищі. При збереженні нових версій використовується дельта-компресія, тобто система знаходить відмінності нової версії від попередньої і записує тільки їх, уникаючи непотрібного дублювання даних. Сховище може розташовуватися на локальному диску або на мережевому сервері. До локального сховища клієнт Subversion звертається безпосередньо. Для доступу до віддаленого сервера може використовуватися власний мережевий протокол або стандартний протокол WebDAV, підтримуваний за допомогою спеціального модуля для вебсервера Apache.
Клієнти копіюють файли з сховища, створюючи локальні робочі копії, потім модифікують їх і публікують зміни в сховищі. Декілька клієнтів можуть одночасно звертатися до сховища. При використанні доступу за допомогою WebDAV також підтримується прозоре керування версіями — якщо будь-який клієнт WebDAV відкриває для запису і потім зберігає файл, що зберігається на мережевому ресурсі, то автоматично створюється нова версія.
Subversion — централізована система (на відміну від розподілених систем, таких як Git або Mercurial), тобто дані зберігаються в єдиному сховищі. Сховище може розташовуватися на локальному диску або на мережевому сервері.
Робота в Subversion мало відрізняється від роботи в інших централізованих системах керування версіями. Клієнти копіюють файл зі сховища, створюючи локальні робочі копії, потім вносять зміни в робочі копії і фіксують ці зміни в сховищі. Кілька клієнтів можуть одночасно звертатися до сховища. Для спільної роботи над файлами в Subversion переважно використовується модель копіювання — зміна — злиття. Крім того, для файлів, що не допускають злиття (різні бінарні формати файлів), можна використовувати модель блокування — зміна — розблокування.
При збереженні нових версій використовується дельта-компресія: система знаходить відмінності нової версії від попередньої і записує тільки їх, уникаючи дублювання даних.
Нумерацію всіх версій svn робить сам, при svn commit номер версії всіх файлів проєкту збільшується на 1.
Структура директорій системи:
При використанні доступу за допомогою WebDAV також підтримується прозоре керування версіями — якщо будь-який клієнт WebDAV відкриває для запису і потім зберігає файл, що зберігається на мережевому ресурсі, то автоматично створюється нова версія.
Subversion пропонує два варіанти організації репозиторіїв. Репозиторії першого типу використовують для зберігання бази даних на основі Berkeley DB, репозиторії другого типу — звичайні файли спеціального формату (доступ до даних організується з допомогою власних бібліотек, без використання сторонніх баз даних). Розробники Subversion часто називають сховище «файловою системою», тому другий тип отримав назву FSFS, тобто (версіонована) файлова система (англ. File System) поверх (звичайної) файлової системи.
Обидва типи репозиторіїв забезпечують достатню надійність при правильній організації (Berkeley DB використовує блокування файлів, тому її не можна використовувати на деяких мережевих файлових системах, що не підтримують блокувань), кожна з них має свої переваги і недоліки. Вважається, що FSFS легше правильно налаштувати, вона вимагає меншої уваги від адміністратора. Крім того, до релізу 1.4 сховища, що використовують Berkeley DB могли за певних умов опинитися в так званому заклиненому (англ. wedged) стані; потрібно втручання адміністратора для відновлення його працездатності. Починаючи з релізу 1.2 для нових сховищ за замовчуванням використовується FSFS.
Subversion надає такі способи доступу до сховища:
Всі ці способи можуть бути використані для роботи з репозиторіями обох типів (FSFS і Berkeley DB). Для доступу до одного і того ж репозиторію можуть одночасно використовуватися різні способи.
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)[3].
Незважаючи на розвиток децентралізованих систем, Subversion користується великою популярністю в комерційних компаніях і проєктах, що використовують централізований підхід до керування версіями і конфігурацією програмних систем.
Станом на 2013 рік з відкритих проєктів, що використовують Subversion, можна відзначити: проєкти Apache, FreeBSD, Free Pascal, GCC, LLVM, Mono, WordPress і Ruby. Проте спостерігається великий відтік проєктів на Git, зокрема з Subversion на Git за останній час перейшли проєкти Django, PHP, MediaWiki, Ruby on Rails, з Subversion на Mercurial перейшов проєкт nginx. Підтримка Subversion реалізована в таких хостингах відкритих проєктів, як Google Code, CodePlex і SourceForge.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.