В ртутном, есть ли способ слияния во время пересадки? - PullRequest
1 голос
/ 18 апреля 2011

Кажется, что трансплантат делает патч из набора (ов) изменений и накладывает его поверх цели, аналогично qimport -r, затем qpush.

Поэтому, когда некоторые фрагменты не будут применены, вы получите отклоненные файлы и вам придется "исправить слияние" вручную.

Есть ли способ запустить визуальное слияние, подобное rebase?

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

Я опубликую самоответ, который я имею в виду, но мне интересно, есть ли простой / лучший способ.

1 Ответ

0 голосов
/ 18 апреля 2011

Этот ответ на самом деле вообще не использует трансплантацию. Идея состоит в том, чтобы слить как обычно, а затем вернуться к слиянию и зафиксировать.

hg init trans
cd trans
echo 1 > file
hg ci -A -m c1

echo 2 >> file
hg ci -A -m c2

hg up -r0
echo 3 >> file
hg ci -A -m c3

hg merge 1
hg ci -m merge

hg up -r1
hg revert --all -r3
hg ci -m "c3 transplant"
hg strip 3

В конце концов, набор изменений c3 «безопасно» пересаживается на c2.

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

...