Я уже некоторое время использую Mercurial, но до сих пор не привык к работе с ветками, поэтому я пытаюсь выяснить, имеет ли этот рабочий процесс смысл, или нет, прежде чем применять его в реальном проекте.
Вопрос:
Действительно ли имеет смысл воскрешать ветку development
каждый раз, когда мы собираемся работать над новой версией, объединяя в нее production
, или мы должны вместо этого создавать уникальные именованные ветки разработки с коротким сроком службы, такие как development-1.1
?
Описание рабочего процесса:
Каждая готовая к работе редакция нашего кода будет помечена (1.0
, 1.1
и т. Д.) И помещена в ветку production
. Как только мы запустили 1.0
в производство, мы сразу же приступили к работе над следующим выпуском - 1.1
, открыв ветку с именем development
, которая затем разветвляется каждым разработчиком для каждой назначенной функции, чтобы сохранить вещи. аккуратный. Очень просто так далеко.
Ветвь development
, теперь содержащая объединенную ветвь feature
, затем тестируется и объединяется обратно в production
, поскольку изменения считаются готовыми к работе.
Когда нам нужно продолжить работу над предстоящим выпуском, 1.2
в этом примере мы объединяем ветвь production
с development
и начинаем работать.
Иллюстрированная история изменений:
@ changeset: 8:21e89b501d4e
|\ branch: development
| | tag: tip
| | description: Development stage for v1.2 opened by merging production into development.
| |
| o changeset: 7:920ca77aa956
|/| branch: production
| | tag: 1.1
| | description: Version 1.1 stable (merged from development).
| |
o | changeset: 6:691b7aa99e42
|\ \ branch: development
| | | description: Feature merged in to development
| | |
| o | changeset: 5:5156cb9cf556
| | | branch: feature
| | | description: Feature finished
| | |
| o | changeset: 4:0345dc73e144
|/ / branch: feature
| | description: Work started on a feature
| |
o | changeset: 3:9d49be5d8a03
|/ branch: development
| description: Development branch opened
|
o changeset: 2:ba818420fa88
| branch: production
| tag: 1.0
| description: Version 1.0 stable. Woop woop!