Система керування версіями: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
оформлення, вікіфікація
Рядок 1:
'''Система керування версіями''' ({{lang-en|source code management}}, SCM)  — програмний інструмент для керування версіями одиниці інформації: [[Початковий код|вихідного коду програми]], скрипту[[скрипт]]у, веб-сторінки, [[веб-сайтусайт]]у, 3D -моделі, текстового документу тощо.
 
Система керування версіями   це потужний інструмент, який дозволяє одночасно, не заважаючи один одному, проводити роботу над груповими проектами.
 
Системи керування версіями зазвичай використовуються при [[Розробка програмного забезпечення|розробці програмного забезпечення]] для відстеження, документування та контролю над поступовими змінами в електронних документах: у [[сирцевий код|сирцевому коді]] [[Застосунок|застосунків]], кресленнях, електронних моделях та інших документах, над змінами яких одночасно працюють декілька людей.
 
Кожна версія позначається унікальною цифрою чи літерою, зміни документу занотовуються. Зазвичай також зберігаються дані про автора зробленої зміни та її час.
Рядок 15:
== Загальні відомості ==
Система контролю дозволяє зберігати попередні версії файлів та завантажувати їх за потребою. Вона зберігає повну інформацію про версію кожного з файлів, а також повну структуру проекту на всіх стадіях розробки. Місце зберігання даних файлів називають репозиторієм.
В середині кожного з репозиторіїв можуть бути створені паралельні лінії розробки  — гілки.
 
Гілки зазвичай використовують для зберігання експериментальних, незавершених(alpha, beta) та повністю робочих версій проекту(final).
 
Більшість систем контролю версії дозволяють кожному з об'єктів присвоювати теги, за допомогою яких можна формувати нові гілки та репозиторії.
 
Рядок 29 ⟶ 30:
 
=== Невеликий словник основних термінів-сленгів ===
* Транк (trunk)  — основна гілка коду
* Бранч (branch)  — відгалуження
* Чекін (Check in (submit, commit))  — відправлення коду в репозиторій
* Чекаут (Check out)  — одержання зміни з репозиторію
* Конфлікти  — виникають, коли кілька людей правлять один і той же код, конфлікти можна вирішувати
* Патч  — шматок з записаними змінами, які можна застосувати до сховища з кодом
 
=== Світовий досвід ===
На сьогодні у світі існує безліч організацій, які використовують системи контролю версій у своїй повсякденній роботі. Практично кожна фірма, що виробляє програмне забезпечення використовує їх. Але крім комерційних організацій системи контролю версій використовуються в університетах у всьому світі. Так наприклад можна виділити статтю двох професорів університету в Торонто: Грегорі&nbsp;В.&nbsp;Вілсона і Карен Рейд<ref>{{Cite book|url=http://dl.acm.org/citation.cfm?id=1047344.1047441|прізвище1=Вілсон|ім'я1=Грегорі|прізвище2=Рейд|ім'я2=Карен|назва=Learning by doing: introducing version control as a way to manage student assignments|формат=[[PDF]]|видавництво=[[Association for Computing Machinery|ACM]]|місце=[[Нью-Йорк]]|рік=2005|сторінки=272-276|isbn=1-58113-997-7|doi=10.1145/1047344.1047441|мовою=англійською}}</ref>. У своєму новому проекті вони намагаються створити середовище для студентів, в якому вони хочуть використати системи контролю версій, issue trackers, web-логи.
 
Це не поодинокий випадок. Деякі університети прагнуть використовувати і створювати такі середовища, в яких усі студенти технічних спеціальностей змогли б мати систему контролю версій, web-логи та інше. Цікаво також, що уУ [[Сполучені Штати Америки|США]] департамент освіти також займається цим питанням. Впровадження подібних систем відбувається на державному рівні.
 
== Види систем контролю версії ==
Рядок 44 ⟶ 46:
=== Централізовані системи контролю версії ===
 
Централізована система контролю версії (клієнт-серверна) &nbsp;— система, дані в якій зберігаються в єдиному «серверному» сховищі. Весь обмін файлами відбувається з використанням центрального сервера. Є можливість створення та роботи з локальними репозиторіями (робочими копіями).
 
Переваги:
Рядок 58 ⟶ 60:
 
=== Розподілені системи контролю версії ===
Розподілена система контролю версії (англ. Distributed Version Control System, DVCS) &nbsp;— система, яка використовує замість моделі клієнт-сервер, розподілену модель зберігання файлів. Така система не потребує сервера, адже всі файли знаходяться на кожному з комп'ютерів.
 
Переваги:
Рядок 74 ⟶ 76:
 
== Виникнення конфліктів та їх вирішення ==
Конфлікти можуть виникнути при операції злиття, розгалужені від різних джерел. При зміненні одного і того ж рядка різними користувачами виникає конфлікт. Тобто якщо один користувач внесе зміни в документ та виконає злиття &nbsp;— то конфлікту не буде. Але якщо після цього інший користувач змінить документ в тих же рядках, що і перший &nbsp;— то виникне конфлікт. В такому випадку конфлікт повинен вирішувати другий користувач (власне, через якого і виник конфлікт), або система (як правило, вирішення конфліктів покладається на користувачів).
<br />
<br />
'''Вирішення конфліктів'''
<br />
Ручний режим:
* Шляхом ручних змін конфліктних рядків.