Вы также можете использовать патчи mq для редактирования своей недавней истории. Следующая последовательность команд сделает свое дело:
hg qinit # initialises a queue
hg qimport -r2:TIP # moves revisions from 2 onwards into patch management
hg qpop -a # unapplies patches, leaving your actual checkout at r1
hg qrm 2.diff # deletes the r2 patch (forever)
hg qpush -a # applies all remaining patches again (i.e. the r3 patch)
hg qfinish -a # moves applied patches back into official repository history
Подобные вещи отлично подходят для исправления ошибки в вашем локальном репозитории, но, поскольку вы изменяете историю , убедитесь, что вы не давили на кого-то другого (или они не тянули от вас) оригинальная версия, прежде чем исправить это.
Если я правильно понимаю, hg backout
вместо этого передаст новый патч, который отменяет предыдущие изменения, сохраняя изменения в вашей истории. Это более безопасный вариант, но менее приятный, если вы часто делаете локальные ошибки (как я).