Куди йдуть виправлення у моделі git-flow?


15

У, зазвичай називаються, виправлення моделей Git-flow входять у свою специфічну hotfix-*гілку та невеликі виправлення інтеграції безпосередньо перед випуском переходять у release-*гілку. Загальні помилки попередньої версії, схоже, не мають місця.

Де вони повинні з’явитися? Чи повинні вони бути у власній bug-*гілці develop(як подібно до featureгілок)?


3
Чому некритична помилка у звільненому коді відрізнятиметься від невеликої функції, щоб створити іншу поведінку, ніж те, що працює у програмі?
Барт ван Іґен Шенау

@BartvanIngenSchenau Ви їх рекомендуєте бути feature-*гілками? Чи може виправлення помилкової поведінки розглядатися як особливість?
Взуття

1
@Shoe Я думаю, що Барт означає, що ви повинні ставитися до них як до особливостей, не обов'язково використовуючи той самий префікс гілки .
Darkhogg

3
@Shoe: в GIT-потоці, будь-якій галузі , за винятком master, develop, release-*або hotfix-*це особливість гілки, так що ви можете використовувати будь-який префікс , як і використовувати інший префікс для помилок. Крім того, яка різниця між помилковою поведінкою, яка працює як визначена, та помилковою поведінкою, що відхиляється від специфікації? В обох випадках це помилкова поведінка, але лише останній - це помилка.
Барт ван Інген Шенау

Відповіді:


9

Коротка відповідь: Так, гілки для виправлень помилок, які збираються у запланованому майбутньому випуску, повинні бути у гілках функцій. Як ви називаєте функції філій або цих гілок для виправлення помилок, залежить від вас та стандартів вашої команди, але до них слід ставитися однаково, якщо ви слідуєте за Gitflow.


Коментар Барта ван Іґена Шенау дає хороший момент.

Gitflow має п'ять філій: master, develop, виправлення гілка (з префіксом hotfix-), гілка вивільнення (з префіксом release-, і особливість гілки. masterІ developгілка тривалі гілок , і ви не робили безпосередньо в них В. release-гілок зроблені , щоб намалювати лінію для конкретного випуску, а потім підтримує виправлення помилок між ідентифікацією наступної версії та випуском. hotfix-Гілки призначені спеціально для критичних випусків поза циклу у виробництво. feature-Гілки призначені для розробки окремих функцій для майбутнього випуску.

Виходячи з умов , де реципієнтів використовуються і в стороні від окремого розробника , що здійснює в цю гілку, ніщо не повинно бути скоєно безпосередньо в master, developабо гілки випуску. Це гарантує, що кожна зміна буде переглянута кодом, а також забезпечити відповідне покриття тесту та проходження тестів у середовищі CI перед тим, як зміни відбудуться. Я був би проти будь-яких комісій безпосередньо в одну з цих гілок, хоча, здається, сам Gitflow не робить ' не матимуть ніяких проблем із виправленням помилок попереднього випуску або змінами безпосередньо у гілці випуску, а потім витягнути їх у розробку, а потім представити гілки.

У вашому конкретному випадку release-філія не є відповідним місцем. Програмне забезпечення вже випущено та знаходиться у програмі master. Після того, як випуск об’єднаний у головний та позначений там, гілка випуску для цього конкретного випуску вже перестала своє призначення і не обов’язково більше існувати. Якщо ви активно займаєтесь прибиранням своїх гілок (що, на мою думку, повинно бути усім), це навіть не варіант.

Якщо виправлення не є критичним, то філія виправлення також не відповідає. Мета гілки виправлень - дозволити комусь отримати дуже важливі зміни у виробництві дуже швидко, не заважаючи постійно розвиватися. Їх використання має бути винятком, а не нормою для команди розробників. Загалом, критичні виправлення мають бути винятковим випадком.

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


Ми погоджуємось, що не повинно бути прямих зобов'язань щодо освоєння, розвитку або випуску галузей. Але яким повинен бути потік PR, коли ви знайдете помилку у відділенні випуску, і її потрібно виправити в обох, випустити та розвинути гілки. У цього є свої проблеми, якщо вся ваша філія випуску ще не готова до об'єднання в розробку, але виправлення помилок слід робити в обох місцях. Якщо ви хочете, я можу поставити нове запитання для цього.
Сап

@Sap Нове запитання було б добре, але якщо ви його опублікуєте, будь ласка, поясніть, чому виправлення настільки критичне, що його потрібно об'єднати в обидва - це, мабуть, означає, що до його введення не було знайдено критичної проблеми develop, не знайдено між часом, коли він був введений та створенням відділення випуску, та / або тим, що ваша гілка випуску існує тривалий час. Хоча, просто, я вважаю, що єдиний вибір - це вишня вибору (я б запропонував виправити та витягнути запит у гілку випуску, об'єднатись у гілку випуску та вишню вибору у розробку за допомогою запиту на витяг).
Thomas Owens

5

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

Також є коментар автора git-flow, в якому сказано саме те, що ви просите: Відсутні гілки помилок №24


Дякую, це посилання, яким ви поділилися, очистило це для мене.
arcseldon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.