Мой коллега фиксировал дважды на его репозитории на неправильном ответвлении.
Что самый эффективный путь состоит в том, чтобы взять те две фиксации, избавиться от них и затем фиксировать их правильно при правильном ответвлении? (изменения не были продвинуты),
Мы идеально хотели бы способ сделать это из TortoiseHG, но конечно, мы будем использовать командную строку, если это будет наилучший вариант.
Насколько я понял, лучше всего использовать трансплантат. Он применяет изменение к любой другой ревизии, которую вы хотите.
http://mercurial.aragost.com/kick-start/tasks.html#transplanting-changes
Решением моей проблемы было обновление ветки, в которой должны были быть применены два изменения, трансплантация двух изменения, а затем используйте mq, чтобы удалить изменения. Все это можно сделать и в tortoisehg.
Расширение Mercurial Queues (mq) может помочь .
Учитывая историю изменений, которая выглядит следующим образом:
@ changeset: 3:9dc681b56325
| summary: file4
|
o changeset: 2:6675b3f86aa7
| summary: file3
|
| o changeset: 1:4a3209ed5b2f
|/ summary: file2
|
o changeset: 0:6ab45ac3bd6d
summary: file1
Следующие команды перемещают набор изменений файла 'file4' в другую ветку (заголовок 'file2'):
hg qimport -r 3 // convert revision 3 to a patch
hg qpop // remove it
hg update 1 // switch to the other branch head
hg qpush // push the change back
hg qfin -a // convert the applied patch back to a changeset
Результат:
@ changeset: 3:3faa754edb0b
| summary: file4
|
| o changeset: 2:6675b3f86aa7
| | summary: file3
| |
o | changeset: 1:4a3209ed5b2f
|/ summary: file2
|
o changeset: 0:6ab45ac3bd6d
summary: file1
Обратите внимание, что хэш набора изменений для версии 3 изменено из-за того, что набор изменений теперь имеет другого родителя. Более поздние версии TortoiseHg также поддерживают расширение MQ.