Який рекомендований спосіб відокремити поточну розробку від розробки технічного обслуговування програмного забезпечення для управління версіями?


10

У мене є кілька програмних програм, якими керується за допомогою Git. Щойно я випустив нову версію 2.x, яку я планую підтримувати в довгостроковій перспективі (в основному виправлення помилок). Тим часом я хотів би почати працювати над версією 3.x. Який рекомендований спосіб управління цим? Чи слід створити гілку для версії 2.x і мати розробку 3.x на майстрі? чи в інший спосіб?


Мають різні галузі розвитку та стабільні.
Одід

То що зазвичай переходить у головну галузь? (до цих пір я завжди все там роблю)
laurent

Вам потрібно вирішити, що ви хочете мати masterна увазі. Це просто етикетка.
Oded

Відповіді:


13

Тут був описаний дуже цікавий спосіб робити: Успішна модель розгалуження Git

Я вважаю це дуже інтригуючим, але ще не маю на ділі його використовувати.

Дуже добре, як вимагається (дуже) короткий підсумок того, що йдеться у статті:

  • Гілка Master лише кожен представляє готові основні етапи (тобто версії 1.0, 1.1, 1.2 тощо)
  • Розвиток робиться у власній галузі (зручно називати "розвивати", хто б міг подумати?). Гілка розробки об'єднується назад у головну гілку, коли буде виконана повна версія функції.
  • Відділення від розвитку - це особливі галузі. Вони представляють окремі функції для наступного (або будь-якого майбутнього) випуску. Вони зливаються назад з розвиненою гілкою.
  • Ще одна галузь, що йде від розвитку, - це галузь "випуску". Це гілка, яка представляє майже повну версію випуску, де потрібно очистити лише незначні деталі. Він зливається з галуззю розвитку і, зрештою, з гілкою
  • Якщо ви знайдете серйозну помилку в одному з ваших випусків (наприклад, "Якщо при використанні вводиться код konami, наша програма переформатує основний жорсткий диск ..."). Він відгалужується від звільнення від баггі і, коли виправлення закінчено, об'єднується назад у головну гілку І гілку розвитку.

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


2
У відповідь слід включити пояснення щодо вашої пропозиції, бажано, щоб люди не переходили за посиланням, щоб отримати загальне уявлення про модель. Посилання мають погану звичку закручуватися, а відповіді мають стояти самостійно ...
yannis

+1 Досить багато, що ми використовуємо на роботі, і це справді працює.
Ед Джеймс

1
Я вважаю, що це зазвичай називають моделлю "стабільний магістраль" або "особливість гілки".
sleske

"Гілка Master лише кожен представляє завершені етапи (тобто версії 1.0, 1.1, 1.2 тощо)" Я не хотів би головну гілку з версіями 1.0, 1.1, 1.2, 2.0, 1.3, 2.1, 1.4, 2.2, 3.0, 1.5 в цей порядок, це було б дійсно заплутано. Я здогадуюсь, що існує неявне припущення, що існує максимум один потік, на якому зроблено випуски, це не так у моїй практиці. Є ранні усиновлювачі та люди, які бажають чогось більш стабільного.
AProgrammer

Ну, в кінцевому рахунку філія - ​​це не що інше, як етикетка, щоб вам було легше знати, що там відбувається. Тож якщо вам це не подобається таким чином, ніщо не заважає вам використовувати гілку Master лише для стабільних випусків мера та мати відділення "Пробне" (або як би ви хочете назвати це) для менших поступових випусків.
Сорс

5

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

Таким чином, ви зберігаєте свого майстра на тривалішу (3.X) версію, і ви продовжуєте називати цю гілку загальним іменем (master, trunk, devel, ...), а не конкретним (кодове ім'я випуску або ще гірші номери випуску які на практиці занадто багато залежать від прийняття рішення про пізні ринки)

Це не так важливо в такій системі, як git, яка має плоский простір імен для гілок і де гілки є рівнозначними. Це важливіше для системи, як прозорий регістр, який має ієрархічний простір імен для гілок (повна назва гілки V4 в кінцевому підсумку є основним / v1 / v2 / v3 / v4 ...)


+1 окрім того, що я не знаю, що в цьому контексті насправді означає глибоке і мілко, можливо, ви могли б трохи розширитись на цих термінах?
Майкл Дюррант

Думає гілки, роблячи дерево. У них може вийти стовбур або інша гілка. Неглибоке означає, що кількість кроку розгалуження між гілкою та стовбуром невелике, глибоке означає, що кількість кроків розгалуження є важливою. Що мало і важливо, то здебільшого відносне, але я бачив схеми, для яких кожен новий реліз був на крок далі, ніж попередній з магістралі. Якщо ви використовуєте плоский простір імен, це не так вже й погано. Якщо простір імен є ієрархічним (прозорий регістр, CVS, RCS, Perforce також може бути використаний таким чином), ви отримуєте довші і довші імена.
AProgrammer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.