Как правильно объединить / преобразовать ветку dev в стабильную ветку в Mercurial? - PullRequest
6 голосов
/ 26 апреля 2010

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

В одном и том же репозитории существует ветка stable и development сайта. На производственном сайте запускается ветка stable , и разработчики, очевидно, кодируют ветку development ( dev с этого момента) (кроме исправлений).

Эта модель довольно новая для нас. После последней крупной производственной попытки мы создали ветку разработки из только что выпущенной стабильной ветки (используя hg branch dev из последней stable ревизии и взяли на себя обязательство создать новую наконечник ). * * тысяча двадцать-одна

Значительное количество нового кода существует в ветке dev теперь, когда мы приближаемся к другому выпуску. Между тем ветвь stable видела только исправления ошибок, все, что уже было перенесено через в dev ветку.

Когда мы удовлетворены состоянием ветви dev и считаем, что оно готово к работе, нам нужно текущее состояние ветви dev . стать новой стабильной веткой. В один быстрый ход ветка stable ассимилирует тонны изменений, которые были внесены в ветку dev . Ветвь dev будет (как мы полагаем) по существу станет неактивной до того времени, когда мы снова начнем разрабатывать новые вещи.

Каков правильный процесс для достижения этого? Простое слияние из кончика dev с проверкой кончика ветки stable или что-то еще? Как я уже сказал, все изменения в stable уже существуют в dev , поэтому мы согласны с тем, что dev просто становится stable как есть .

И после того, как мистическая трансмогрификация dev в stable была выполнена, и результат был помечен, каков процесс начала дальнейшего развития на dev снова, так как после слияния с stable у него не будет активного tip для проверки? Просто посмотрите последнюю версию dev до слияния и сделайте коммит, чтобы создать новый tip ? Это кажется неправильным; мой инстинкт инстинкт подсказывает мне, что "new dev " должен быть выделен из объединенной и помеченной tip ветви stable , но я не знаю как это сделано (Как уже говорилось, в прошлый раз мы сделали это, создав вначале именованную ветку dev ; на этот раз мы просто хотим создать новый tip для существующих, хотя, вероятно, неактивных - post-merge dev branch)

Простые вопросы всем, кто более привык к распределенному контролю версий и Mercurial, но это не так давно, как мы покинули SVN-land, и все еще немного туманно. Любая помощь приветствуется.

Ответы [ 3 ]

3 голосов
/ 26 апреля 2010

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

2 голосов
/ 26 апреля 2010

Я бы:

  • первый разработчик rebase поверх вершины: см. Mercurial rebase
    Это позволит вам разрешить в ветке dev любые последние конфликты, которые могут возникнуть с исправлениями ошибок, сделанными в стабильной ветке в течение времени жизни ветки dev.
  • затем слияние стабильного в dev (тривиальное слияние): стабильное теперь содержит все его исправления и наборы изменений dev.
  • создайте новую ветку dev (dev2) оттуда, так как старая только что переписала свою историю, что нехорошо для тех, кто ее извлекает. Лучше согласиться (для разработчиков) вытащить из нового.
1 голос
/ 26 апреля 2010

Нет прямого ответа на ваш вопрос, но существует превосходное руководство по Mercurial здесь . Этот урок объясняет слияние очень простым способом. Я обнаружил, что после прочтения этой книги я понял Mercurial лучше, чем любая другая книга.

...