Это, конечно, возможно .Я не знаю, как это сделать легко , хотя.
Хитрость заключается в том, чтобы превратить это:
o [draft] 14 X
|
| o [draft] 13 Y
|/
o [draft] 12 Fixup
|
o [draft] 11 Thing to Fix
|
o [draft] 10 Z
|
~
в:
o [draft] 16 Fixup
|
o [draft] 15 Thing to Fix
|
| o [draft] 14 X
| |
| | o [draft] 13 Y
| |/
| o [draft] 12 Fixup
| |
| o [draft] 11 Thing to Fix
|/
o [draft] 10 Z
|
~
, где 15 - копия 11, а 16 - копия 12. (Для этого используйте hg graft
.) Теперь вы можете использовать hg histedit
, чтобы объединить эти два.
Теперь легко копировать13 и 14 поверх нового 15, который заменил старые 15-и-16:
o [draft] 17 X
|
| o [draft] 16 Y
|/
o [draft] 15 Thing to Fix with Fixup
|
| o [draft] 14 X
| |
| | o [draft] 13 Y
| |/
| o [draft] 12 Fixup
| |
| o [draft] 11 Thing to Fix
|/
o [draft] 10 Z
|
~
Теперь вы можете hg strip -r 11
удалить 11, 12, 13 и 14, оставив только исправленные коммиты.(Обратите внимание, что вы можете использовать rebase, чтобы немного упростить это. Длинная форма в основном для иллюстрации и простоты понимания.)