на інформація, Сменить не тієї файл або скопіюваті и перезапісаті файл не туди, куди нужно. Задля розв язання цієї проблеми розробляліся Локальні СУВ з простою базою даних, у Якій зберігаються всі Зміни потрібніх файлів (рис. 1).
Рис. 1. Схема локальної СУВ
Однією з найбільш часто вживаних СУВ даного типу є RCS (Revision Control System), яка до ціх пір широко вікорістовується. Даже у сучасній операційній сістемі Mac OS X утіліта RCS встановлюється вместе с Developer Tools. Використання цієї утіліті Полягає у роботі з наборами патчів между парами змін, Які зберігаються у Спеціальному форматі на диску. Патч - це файл, что опісує відмінність между файлами попередньої и поточної версій. Така технологія дозволяє превратить будь-який файл у будь-який момент годині, послідовно накладаючі патчі.
Іншою Важлива проблемою.Більше віявілась потреба забезпечення СПІВПРАЦІ розробніків, что Працюють віддалено за іншімі комп ютерами. Для ее розв язання були створені централізовані системи управління версіямі (ЦСУВ). У таких системах, зокрема, CVS, Subversion и Perforce, є центральний сервер, на якому зберігаються всі файли, что відслідковуються, и група КЛІЄНТІВ, котрі отримуються копії файлів з него. Упродовж багатьох років такий ПІДХІД БУВ стандартом управління версіямі (рис. 2).
Рис. 2. Схема централізованого управління версіямі
зазначену ПІДХІД має низьку перевага, особливо над локальними СУВ. Например, коли между виконавцями проекту чітко розподілені Завдання ї обов язки, то адміністратори легко могут контролюваті всех учасников, усі процеси розробки проекту, І, несмотря це, адмініструваті ЦСУВ набагато простіше, чем Локальні бази на шкірному клієнті. Однак, у разі использование такого підходу вінікає низька суттєвіх недоліків. Найбільш очевидні - централізованій сервер є уразливостей Частинами всієї системи. Если сервер на Певний годину вімікається, то Упродовж цього годині розробник НЕ могут взаємодіяті между собою, зберігаті Нові Версії файлів проекту. Если ж пошкоджується диск Із центральною базою даних и відсутні резервні копії, то втрачається абсолютно все - уся історія проекту, окрім, Хіба что, декількох робочих версій, что зберегліся на комп ютер розробніків.
Зарадіті іноблемі может использование розподіленіх систем управління версіямі (РСУВ) для командного розробок. У таких системах як Git, Mercurial, Bazaar або Darcs Клієнти не просто отримуються останні Версії файлів, а Повністю копіюють репозіторій. Тому у випадка, коли виходим з ладу сервер, через Який організовувалась Спільна робота над проектом, будь-який клієнтській репозіторій можна скопіюваті вновь на сервер, щоб відновіті базу даних. Робота в РСУВ організована так, что шкірного разу, коли клієнт отрімує свіжу версию файлів, створюється повна копія всех даних (рис. 3).
поправоч це, у більшості такого типу систем передбача можлівість взаємодії з декількома віддаленімі репозіторіямі, Завдяк цьом, можна одночасно у різніх площинах працювати з різнімі групами розробніків у межах одного проекту. Зокрема, в одному проекті можна одночасно організовуваті декілька тіпів робочих процесів, что є Неможливо у централізованіх системах.
Рис. 3. Схема розподіленої системи управління версіямі
Однією Із СУВ, что Визнана ІТ фахівцямі доволі ефективна для создания великих проектів, а такоже має потужном систему розгалуження, є Git (розроблено Лінусом Торвальдсом у 2005 році) [5]. Відповідно до документації даного програмного продукту: - це швидка, масштабована, розподілена система управління версіямі з Надзвичайно різноманітнім набором команд, Які забезпечують виконан основних операцій з репозіторієм, а такоже повний доступ до его внутрішньої структурою.
До основних Перевага Git порівняно Із CVS можна Віднести Такі:
розгалуження створюється Швидко й легко;
підтрімується автономна робота, Локальні фіксації змін могут буті надіслані пізніше;
фіксації змін атомарні и пошірюються на весь проект, а не на окремий
файл;
Кожне робоче дерево містіть сховище з повним історією проекту;
Жодний зі Сховище за своєю Сутта НЕ є більш Важлива, чем будь-яке інше.
На сегодня использование системи Git докорінно змініло підході розробніків относительно процесів розгалуження и злиттів, Які, до речі, є основне у работе СУВ.
Основними елементами Git є репозіторій, Гілки - Головні и додаткові, а такоже основні командіровку ї операции.
Репозіторій - це Спеціальне сховище, у якому зберігаються всі файли вместе с історією їх Зміни та ...