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

Гілка (англ. 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 не буде зупинена, а помилки будуть швидко знайдені і виправлені.

Примітки

Джерела

Посилання


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.