2016-09-27 3 views
1

hg convert --branchmap позволяет перемещать все изменения в ветке на другую ветвь. В ветке с несколькими головами (например, один путь ведет к «закрытой ветке»), как мне переместить некоторые изменения в другую ветку, оставив других без изменений?Как переместить некоторые изменения из одной ветки в другую?

ответ

0

Согласно Pierre-Yves David

Вы должны быть в состоянии достичь этого с помощью "histedit". Используйте действие «изменить» в первых наборах изменений и настройте имя филиала перед фиксацией.

Так, например, сказать, что мы имеем:

@ changeset: 3:acd042300874 
| tag:   tip 
| user:  [email protected] 
| date:  Tue Sep 27 11:22:33 2016 -0400 
| summary:  commit4 
| 
o changeset: 2:6cd4bf5a3e25 
| parent:  0:7f1fbf9d8623 
| user:  [email protected] 
| date:  Tue Sep 27 11:22:33 2016 -0400 
| summary:  commit3 
| 
| o changeset: 1:5cf7adbb92ea 
|/ user:  [email protected] 
| date:  Tue Sep 27 11:22:32 2016 -0400 
| summary:  commit2 
| 
o changeset: 0:7f1fbf9d8623 
    user:  [email protected] 
    date:  Tue Sep 27 11:22:32 2016 -0400 
    summary:  commit1 

и мы хотим двигаться ПЕРЕСМОТРЫ 2, 3 на другую ветку, мы бы сделать следующее:

  1. обновление рт.ст. 3
  2. hg histedit 2
  3. Изменение обеих ревизий с "pick" на "редактировать"
  4. филиала рт.ст. «новый филиал»
  5. рт.ст. совершить -й «старое сообщение коммита для rev2»
  6. рт.ст. histedit --continue
  7. рт.ст. совершить -й «старое сообщение коммита для rev3»
  8. рт.ст. histedit - -Продолжить
0

Используйте комбинацию branchmap и splicemap вариантов hg convert. Возможно, более чем на один шаг, в зависимости от того, что вам нужно делать.

+0

Да, это то, что я сделал, пока не услышал ответ [Pierre's] (http://stackoverflow.com/a/39728971/14731). – Gili