Гілка (керування версіями)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Гілка (англ. branch), в системах керування версіями - напрям розробки, який існує незалежно від іншого напряму, але має з ним спільну історію. Гілка починається як копія чогось і, рухаючись з цієї точки, створює свою власну історію. Cистеми керування версіями, такі як Git, Subversion, Mercurial, та ін. надають інструменти для створення та злиття гілок, фіксації змін у них та переключення між гілками.

Використання гілок[ред.ред. код]

Майже кожна система контролю версій (СКВ) підтримує гілки (англ. branches) в певній мірі.[1]. В багатьох системах контролю версій галуження - це "дорогий" процес, який вимагає створення копії коду, що може зайняти багато часу для великих проектів. Наприклад, в Subversion гілка - це копія каталогу файлової системи. Проте гілка в Git це просто легкий вказівник на один з комітів. Тут гілки є надзвичайно легкими, операції галуження та переходу між ними відбуваються майже миттєво. Існує кілька підходів до використання системи Git, серед яких, найпоширенішою є так звана концепція gitflow - центральний репозиторій працює з двома паралельними між собою гілками: master і develop.

Основні гілки (master)[ред.ред. код]

Багато розробників підтримують такий процес, коли основна гілка містить стабільну версію коду - найімовірніше того, що був чи буде запроваджений у виробництво. Часто СКВ мають спеціальні назви для основної гілки. Наприклад, "master" в Git, або trunk в SVN.

Робочі гілки (develop)[ред.ред. код]

Паралельно до основної гілки існує ще робоча гілка (англ. release branch. Вона використовуються для розробки нової версії програмного забезбечення та тестування його стабільності. Коли команда розробників вирішує, що нова версія програми готова до випуску, зміни з робочої гілки перенесеносять у основну(master) і позначаються номером версії. Робочі гілки зазвичай зберігаються протягом тривалого часу.

Додаткові гілки[ред.ред. код]

Поряд з основними гілками — master і develop, можливе існування також додаткових гілок, які забезпечують паралельну розробку проекту декількома членами команди, полегшують відслідковування помилок, а також сприяють швидкому усуненню поточних проблем, які виникатимуть у процесі розробки проекту. У процесі розробки складного проекту можуть використовуватися різні види додаткових гілок, зокрема:

Тематичні гілки (feature)[ред.ред. код]

Тематичні гілки є відгалуженням від робочої гілки (develop) і після завершення розробки визначеного функціоналу на них повинні бути злиті саме з робочою гілкою. Тематичні гілки використовуються для розробки нових, специфічних функцій майбутньої версії проекту. Основною особливістю даних гілок є те, що вони існують доки триває розробка певної функції, а потім після злиття з гілкою develop вони видаляються.

Гілки версій (release)[ред.ред. код]

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

Гілки помилок (hotfix)[ред.ред. код]

Гілки помилок функціонально дуже схожі на гілки версій, оскільки також використовуються для підготовки нової версії проекту, але створюються вони спонтанно. Утворюються гілки помилок у разі потреби виконання миттєвих дій задля усунення небажаних станів робочої версії проекту. Тобто, якщо потрібно виправити критичну помилку у робочій версії проекту, то створюється відгалуження гілки помилок від головної гілки master, на тому її етапі, що відповідає робочій версії проекту в цей момент часу. Суттю використання таких гілок є те, що у разі виникнення непередбачуваних помилок робота членів команди на головній гілці develop не буде зупинена, а помилки будуть швидко знайдені і виправлені.

Джерела[ред.ред. код]

  • Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato http://svnbook.red-bean.com/nightly/ru/index.html Управление версиями в Subversion.
  • Гриценко В.Г., Подолян О.М. ВИКОРИСТАННЯ СИСТЕМИ УПРАВЛІННЯ ВЕРСІЯМИ GIT ДЛЯ ОРГАНІЗАЦІЇ КОМАНДНОЇ РОБОТИ НАД ІТ ПРОЕКТОМ // Інформаційні технології і засоби навчання. — 2014. — Т. 39, № 1. — ISSN. — URL: https://journal.iitta.gov.ua/index.php/itlt/article/viewFile/943/719

Посилання[ред.ред. код]