Вопрос

В нашей конфигурации Mercurial Project у нас есть 3 ветви в одном хранилище. Одним из них является стабильная ветвь выпуска, где делаются срочные исправления ошибок, один из них-это филиал функций, которая содержит новый код функции, а один-это ветвь UAT, где исправлены как исправления ошибок, так и новые функции, чтобы обеспечить самую современную базу кода Анкет

Мы объединили целую нагрузку нового кода функции в филиал UAT без каких -либо проблем. После этого мы объединили стабильную ветвь с исправлением ошибки в филиале UAT, но, похоже, это влияет на удаление нового кода функции. Я обнаружил, что эта проблема была вызвана тем, что кто -то слияет UAT в стабильную стабильную (чего никогда не должно было случиться !!). Теперь, когда я пытаюсь объединить исправления ошибок в UAT, он удаляет весь новый код функции.

Есть ли способ удалить эффекты слияния из UAT в стабильную, в то же время сохраняя исправления ошибки, которые являются потомками после этого «плохого слияния»? Я попытался поддержать слияние, но, похоже, это вообще не имеет никакого эффекта. Могу ли я сделать полосу и повторно добавить необходимые смены?

Заранее спасибо.

Это было полезно?

Решение

На самом деле мне удалось исправить это самому через небольшую пробную версию и ошибку.

Сначала вам нужно включить расширения трансплантации и MQMerge в вашем файле Mercurial.ini. Добавьте линии следующие линии под заголовком расширения

   transplant=
   mq=

Клонировать ваш репозиторий в новое место. В вашем новом репо, удалите плохое слияние, используя команду Strip, чтобы очистить историю, эффект плохого слияния удаляется. (Остерегайтесь, что это удалит все смены потомков)

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

    hg transplant -s "otherRepo" -b "branchName" "changesetHexNumber"

Повторите команду трансплантации для всех необходимых изменений. Ужи!

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top