Переход от разработки к производству в Mercurial

Я использовал 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 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам