Mercurial: есть идеи, как пропустить некоторые изменения при слиянии ветвей? - PullRequest
5 голосов
/ 16 февраля 2011

Здесь наша ситуация: у нас есть две ветви в нашем репозитории Mercurial, давайте назовем их Ветвь A и Ветвь B.

  • Ветвь A предназначена для стабильной версии кода
  • ВетвьB предназначен для ветви разработки

Все, что было изменено в ветви A, было объединено с веткой B. Однако теперь мы подошли к тому, что код в ветви B имеет несколько отличий от ветви A. МыВнесены некоторые большие изменения кода в ветке A, объединение этих изменений в ветке B было бы настоящей болью, и на самом деле мы хотели бы сделать альтернативную реализацию решения.Однако позже мы также хотели бы продолжить изменения в ветви A и по-прежнему иметь возможность объединить эти более поздние незначительные изменения в ветку B. Таким образом, вопрос заключается в следующем: можно ли пропустить несколько отдельных наборов изменений из ветви A при слиянии с веткой B и объединитьболее поздние изменения из A в B снова?(Возможно, с чистым решением Hg и без обходных путей, с копиями из резервных копий и так далее ...)

Вот краткий обзор того, чего мы достигнем:

    Changesets Branch A     Changesets Branch B
    Chgset A.1              Chgset B.1 (Merged with A.1)
    Chgset A.2
                            Chgset B.2 (**Not merged with A.2**)
    Chgset A.3              Chgset B.3 (Merged with A.3 but not with A.2)

Заранее спасибо залюбые советы

1 Ответ

6 голосов
/ 16 февраля 2011

Это точное назначение расширения transplant.

Расширение transplant (выбор вишни в других DVCS) отслеживает, что происходит, когда вы копируете наборы изменений, поэтому объединение проще.

Сначала необходимо активировать расширение (оно включено , но отключено по умолчанию ). В вашем hgrc файле добавьте:

[extensions]
transplant=
...