Mercurial: специфические для ветки изменения продолжают возвращаться после фиктивного слияния

У меня есть ртутный репозиторий с двумя постоянными ветвями, по умолчанию и UAT. Время от времени мы развертываем (продвигаем) новую версию нашего приложения в среде UAT, и мы делаем это путем слияния стабильной фиксации по умолчанию с ветвью UAT. Иногда в ветке UAT будут исправлены ошибки, и эти исправления ошибок будут возвращены в исходное состояние.

В ветке UAT мне нужно изменить несколько вещей для целей развертывания - строки подключения и различные параметры среды. Что я пытался сделать, так это внести эти изменения в ветку UAT и зафиксировать их (все как одну фиксацию) сразу после слияния default с UAT. Затем я фиктивно слил эту фиксацию обратно в значение по умолчанию - думая, что, поскольку по умолчанию эта фиксация теперь есть в его родословной, будущие слияния ошибок из UAT по умолчанию не будут пытаться повторить эти специфичные для UAT изменения.

Однако все пошло не так гладко, как я надеялся. Начиная с фиктивного объединенного коммита по умолчанию, я пробовал оба следующих сценария:

1) Make a few more commits to default and then "promote" to UAT (merge default onto UAT)
2) Make a bugfix on UAT and "backport" it to default (merge UAT onto default)

Между запусками №1 и №2 я вырезал все, чтобы оба сценария начинались с одной и той же точки.

Я вижу, что в зависимости от последнего направления слияния мне все равно нужно проверять измененные файлы после того или иного слияния и возврата - иногда слияние пытается поместить конфигурации по умолчанию в UAT, а иногда и конфигурации UAT в слияние.

Если я отменю изменения конфигурации и зафиксирую слияние, то будущие слияния в том же направлении будут вести себя правильно, но как только я перейду в другом направлении, слияние снова помещает неправильные конфигурации в файлы.

Что мне не хватает?

5
задан Terence Lewis 2 March 2012 в 11:51
поделиться