Переход между разработкой и производством в Mercurial - PullRequest
3 голосов
/ 06 февраля 2012

Я уже некоторое время использую 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!

Ответы [ 2 ]

6 голосов
/ 06 февраля 2012

С Mercurial именованные ветви - это навсегда, поэтому общий совет - использовать их только для имен, которые всегда применяются. Такие вещи, как "stable" и "development", а не такие как "bug-194534" и "release-1.1". Это хорошо объясняется в вики .

Для вещей с конечной продолжительностью жизни лучше использовать что-то вроде закладок , которые намного ближе к тому, что git называет ветвями, чем Mercurial по имени ветки. Другими отличными вариантами для недолговечных концепций являются анонимные ветви или клоны , оба из которых не являются постоянными.

Общий совет - использовать по умолчанию в качестве ветви разработки , но вкратце, да , продолжайте повторно использовать ту же ветку для разработки.

1 голос
/ 06 февраля 2012

рабочий процесс, который вы описываете, кажется разумным в том смысле, что он похож на рабочий процесс git-flow.

http://nvie.com/posts/a-successful-git-branching-model/.

Это популярно (я полагаю), поэтому было бы разумно ожидать, что любой разработчик поймет это.Это должно чего-то стоить.Я не знаю, какую дополнительную ценность можно было бы получить, изменив ее с помощью короткоживущей ветки dev-1.1 и т. Д. Кажется, что издержки на управление ими, вероятно, перевесят стоимость.

...