Как скопировать коммиты из одной ветки в другую? - PullRequest
0 голосов
/ 11 января 2019

У меня есть ветка с несколькими ревизиями. Я хочу попробовать внести некоторые изменения в код, которые требуют переупорядочения и исправления этих коммитов с помощью histedit, но я хочу сохранить исходную ветку на случай, если она не будет работать хорошо. Как я могу это сделать?

Пример

До:

master -> change 1 -> change 2 (branch A)

После того, как:

master -> change 1 -> change 2 (branch A)
       -> change 1 -> change 2 (branch B)

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Интегрированный и рекомендуемый способ копирования или вставки вишней из одной ветви в другую использует

hg graft -r XX YY ZZ.

, где XX YY ZZ и т. Д. - это редакции, которые необходимо скопировать в вашу текущую проверенную ветку. По умолчанию они фиксируются, но вы также можете использовать флаг --no-commit, чтобы редактировать изменения. Или сделайте это один за другим и добавьте, используя hg commit --amend.

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

0 голосов
/ 11 января 2019

Лучший способ, который я знаю, - это экспортировать, а затем импортировать все коммиты, что утомительно:

hg export change1 > change1.patch
hg export change2 > change2.patch
hg up master
hg import change1.patch
hg import change2.patch
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...