Що таке subversion
Що таке Subversion?
Subversion - це безкоштовна система управління версіями з відкритим вихідним кодом. Subversion дозволяє управляти файлами і каталогами, а так само зробленими в них змінами в часі. Це дозволяє відновити попередні версії даних, дає можливість вивчити історію всіх змін. Завдяки цьому багато хто вважає систему управління версіями свого роду «машиною часу».
Subversion може працювати через мережу, що дозволяє використовувати її на різних комп'ютерах. В якійсь мірі, можливість великої кількості людей не залежно від їх місця розташування спільно працювати над єдиним комплектом даних заохочує співпрацю. Коли немає того відповідального ланки ланцюга, того контролюючого елемента, який стверджує всі зміни, робота стає більш ефективною. При цьому не потрібно побоюватися, що відмова від контролюючого елемента вплине на якість, адже завдяки збереженню історії змін, навіть якщо при зміні даних будуть допущені помилки, завжди можна зробити відкат змін до попереднього стану.
Історія Subversion
Стартовий колектив розробників вирішив зупинитися на досягненні ряду простих цілей. Вони не збиралися винаходити велосипед в підходах до управління версіями, швидше їм просто хотілося виправити CVS. Цей колектив вирішив, що Subversion повинна відповідати CVS по набору можливостей, зберегти ту ж саму модель розробки і уникнути недоліків CVS. Хоча перед ними не стояло завдання зробити систему, повністю ідентичну CVS, було ясно, що Subverion повинна бути схожа на CVS, щоб будь-який користувач CVS міг перейти на нову систему без особливих труднощів.
Хоча CollabNet стоїть біля витоків проекту та продовжує фінансувати основну частину роботи, оплачуючи повний робочий день кількох провідних розробників, Subversion розвивається подібно до більшості проектів з відкритим вихідним кодом, вправляючись вільним і прозорим набором правил, які заохочують меритократию. Ліцензія CollabNet повністю відповідає принципам вільного програмного забезпечення Debian - будь-яка людина може встановлювати, змінювати і поширювати Subversion так, як йому заманеться; для цього не потрібно дозволу ні від CollabNet, ні від кого-небудь ще.
можливості Subversion
Обговорювати можливості Subversion найзручніше в розрізі її поліпшень в порівнянні з CVS. Суть деяких розглянутих тут можливостей може бути не зовсім зрозуміла Новомосковсктелям, які погано знайомі з CVS. Якщо ж ви зовсім не маєте уявлення про управління версіями, то вам краще спочатку прочитати главу 2, «Основні поняття». де дається доступне введення в управління версіями.
Subversion надає наступні можливості:
Контроль змін каталогів
CVS стежить тільки за історією окремих файлів, тоді як Subversion використовує «віртуальну» файлову систему з можливостями контролю версій, що здатна відстежувати зміни в часі цілих структур каталогів. Під управління версіями потрапляють і файли, і каталоги.
Справжня історія версій
Атомарна фіксація змін
Кожен набір змін або потрапляє в сховище цілком, або не потрапляє туди зовсім. Це дозволяє розробникам створювати і фіксувати зміни логічно виправданими шматками, запобігаючи тим самим проблеми, які можуть виникати в тих випадках, коли тільки частина необхідних змін поміщається в сховище успішно.
Метадані з версіями
Кожен файл і каталог має власний набір властивостей, представлених у вигляді назви і значення. Ви можете створювати і зберігати будь-які необхідні пари назв властивостей і їх значень. Властивості файлів точно так же знаходяться під управлінням версіями, як і їх вміст.
Вибір засобів доступу до сховища по мережі
У Subversion використовується абстракція доступу до сховища, що дозволяє реалізовувати найрізноманітніші мережеві механізми доступу. Subversion може бути підключена до сервера HTTP Apache у вигляді модуля, що дає їй величезну перевагу з точки зору стійкості роботи і здатності до взаємодії, а також надає прямий доступ до існуючих можливостей цього сервера, включаючи встановлення особи, перевірку прав доступу і стиснення інформації при передачі . Крім того, є легкий самостійний сервер Subversion, який використовує власний протокол взаємодії з клієнтами і може легко туннелировать дані через SSH.
Єдиний спосіб роботи з даними
Subversion виявляє відмінності між файлами за допомогою спеціального бінарного алгоритму, який однаково працює як з текстовими, так і з бінарними файлами. Файли записуються в сховище в стислому вигляді незалежно від їх типу, а відмінності між окремими версіями можуть передаватися по мережі в обох напрямках.
Ефективні гілки і мітки
Плата за використання гілок і міток не повинна бути пропорційна розміру проекту. Subversion створює гілки і мітки шляхом простого копіювання проекту, використовуючи механізм, схожий на жорсткі посилання в файлових системах. Завдяки цьому, операції по створенню гілок і міток займають небагато часу.
Дружелюбність по відношенню до розробників
Subversion не має історичного багажу. Вона реалізована у вигляді набору динамічних бібліотек на мові C, API яких добре відомий. Це робить Subversion надзвичайно зручною для супроводу системою, придатною для взаємодії з іншими додатками і мовами програмування.