25900 авторів і 91 редактор відповіли на 98952 питання,
розмістивши 129771 посилання на 81900 сайтів, приєднуйтесь!

Реклама партнерів:

Які функціональні можливості надає система управління версіями?

РедагуватиУ обранеДрук

Система керування версіями (Version Control System) - Програмне забезпечення, призначене для організації роботи з мінливих інформацією.

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

Серед базових функціональних можливостей, що надаються різними системами управління версіями, можна відзначити наступні:

  • Зберігання версій файлів. Більшість систем управління версіями забезпечує зберігання даних в центральному репозиторії (сховище). Обов'язки управління репозиторієм зазвичай покладається на системних адміністраторів. Оскільки в цьому випадку настройки сховища та створення резервних копій проводиться кваліфікованими фахівцями, надійність зберігання даних підвищується.
  • Фіксація змін стану файлу. Команда фіксації змін (commit) передає зміни, зроблені розробником, в репозиторій і позначає новий стан файлу як чергову його версію.
  • Відновлення будь-якої версії файлу. Цю можливість, напевно, варто визнати найголовнішою. Розробник може як завгодно змінювати вміст файлу-за умови своєчасної фіксації версій і, звичайно ж, при належному адмініструванні репозиторію, файл можна без зусиль повернути до будь-якого із зафіксованих раніше станів. Іншими словами, жодна з попередніх версій пропасти не може.
  • Створення гілок у складі проекту. У ряді випадків виникає необхідність, починаючи з деякої версії файлу, вносити дві незалежних один від одного послідовності змін. Зробити це дозволяє механізм розгалуження. Користувач має можливість на якомусь етапі роботи з файлом, створити нову гілку, після чого зміни в основний і новоствореної гілки можуть вноситися незалежно один від одного. Як правило, нова гілка створюється не для одного файлу, а для проекту - в даному випадку поддерева каталогів з файлами.
  • Інтеграція (злиття) даних з різних гілок проекту. На якомусь етапі роботи з різними гілками проекту можна виконати злиття даних у файлі - об'єднання змін, незалежно внесених різними розробниками в різних гілках.
  • Блокування. Один з розробників має можливість захопити в монопольне використання файл або групу файлів для внесення в них змін.
  • Вирішення конфліктів. Можлива ситуація, коли два розробника вносять зміни в один і той же файл. Той з них, хто перший зафіксує зміни (виконає команду commit), зможе зробити це без проблем. Той, розробник, який зафіксує зміни другим, отримає повідомлення про конфлікт, в даному випадку про те, що його зміни виконані не на базі останньої, а на базі передостанньої версії файлу. У такій ситуації необхідно об'єднати результати роботи двох розробників. Конфлікт також може виникнути і при інтеграції вмісту файлів з різних гілок проекту. Незалежно від причини конфліктів, системи управління версіями надають засоби автоматичного їх дозволу. Однак, слід зауважити, що дані кошти як правило, малоефективні і вирішувати конфлікти в більшості випадків доводиться вручну, а роль автоматичних засобів зводиться до подання конфліктуючих фрагментів коду в зручному для розробника вигляді.

Базові функціональні можливості в різних системах управління версіями реалізовані по-різному. Крім того, різні системи надають додаткові можливості для роботи з версіями. Більш детальну інформацію можна отримати з керівництва по конкретному продукту.

Кілька прикладів з великого списку продуктів - систем управління версіями: Concurrent Versions System (CVS), Subversion (SVN), Razor, BitKeeper, Git.

Джерела:

Реклама партнерів:

РедагуватиУ обранеДрук


«Які функціональні можливості надає система управління версіями?»

В інших пошукових системах:

GoogleЯndexRamblerВікіпедія

» » Які функціональні можливості надає система управління версіями?