Система контролю версій git, svn і інші, порівняння

Система керування версіями

Давайте розберемося, "що таке система контролю версій" (VCS), і чому він так важлива. А також, розберемо системи контролю версій порівняння.

Система контролю версій (ВКВ) - це система, яка дозволяє записувати зміни в файл (або набір файлів) в плині часу і дає можливість повернуться до певної версії пізніше. Систему контролю версій можна використовувати для будь-яких типів файлів: або вихідний код програмного забезпечення, зображення, макети сторінок і т. Д.

Локальна система контролю версій

Простим прикладом використання контролю версії, може стати банальне копіювання файлів в окрему директорію (можливо навіть з позначкою за часом). Такий підхід дуже поширений і в той же час сильно схильний до до появи помилок (можна скопіювати не ті фали, заблукати в директоріях і внести зміни не туди). Для вирішення цієї проблеми, використовують локальні SVC (локальні ВКВ) з простою базою даних, в яку записуються всі зміни в файлах.

Локальна система контролю версій

Приклад локальної системи контролю версій - RCS.

Централізована система контролю версій SVN (Subversion), CVS і Perforce

При взаємодії з іншими розробниками, вже не підійде використання локальної системи контролю версій. Для цих цілей придумали новий тип СКВ - централізовану систему контролю версій (ЦСКВ). Такі системи мають єдиний сервер, який містить всі версії файлів, а клієнти - отримують ці файли. Прикладами ЦСКВ є SVN система контролю версій (Subversion), CVS і Perforce.

Централізована система контролю версій

Всі розробники ЦСКВ зможуть (в якійсь мірі) дізнатися, чим займаються інші розробники. Адміністратори мають повний контроль над проектом: мають можливість контролювати хто і що може робити.

Незважаючи на те, що централізована система контролю версій дає ряд переваг перед локальною системою контролю версій, вона має серйозні недоліки. Якщо сервер на якийсь час вийде з ладу, то клієнти не зможуть використовувати контроль версій для збереження змін і обмінюватися цими змінами з іншими клієнтами. Або, якщо пропадуть дані на сервері (наприклад, зіпсується жорсткий диск), то пропаде весь проект.

Децентралізована система контролю версій Git, Mercurial, Bazaar, Darcs

Що б вирішити проблему централізованих SVN, використовують Дрого тип ВКВ. Децентралізована VCS (ДСКВ) - клієнти повністю копіюють репозиторій, замість простого скачування знімка всіх файлів (стану файлів в певний момент часу). В цьому випадку, якщо сервер вийде з ладу, то клієнтський репозиторій можна буде скопіювати на інший, робочий, сервер, адже даний репозиторій є повним бекапом всіх даних.

Децентралізована система контролю версій

Крім того, велика кількість ДСКВ дають можливість працювати з декількома віддаленими репозиторіями, що дає можливість використовувати відразу декілька підходів при розробці, на відміну від централізованих системах. Хороший приклад децентралізованих систем контролю версіями є система контролю версій Git. Mercurial. Bazaar. Darcs.

І так, в цій статті ми дізналися що таке система контролю версій і зробили порівняння системи контролю версій git, svn та інші. Далі, в даному розділі. буде розглядатися Git система контролю версій.