Я думаю, chistedit
(встроенный начиная с Mercurial 2.3) ближе всего к rebase -i
, то есть чисто Mercurial (chistedit
- интерактивная версия histedit
). Попав в histedit, команда fold
сопоставляется с ребазой squash
, а команда roll
сопоставляется с ребазой fixup
. См. histedit документы для получения дополнительной информации.
Вот простой пример. Предположим, у вас есть следующее и вы хотите переместить все изменения 1e21c4b1 в предыдущую ревизию и просто сохранить сообщение предыдущей ревизии.
@ 1e21c4b1 drees tip
| A commit you want to squash
o b4a738a4 drees
| A commit
o 788aa028 drees
| Older stuff
Вы можете запустить hg chistedit -r b4a738a4
, чтобы отредактировать историю обратно в b4a738a4. В этом случае вы перемещаете курсор вниз до 1e21c4b1 и нажимаете r
, чтобы указать, что вы хотите бросить эту ревизию. Обратите внимание, что порядок в histedit (от самого старого к новейшему) меняется с hg log
(от самого нового к старому).
#0 pick 160:b4a738a49916 A commit
#1 ^roll 161:1e21c4b1500c
После выбора изменений вы выбираете c
для их фиксации. Результат следующий:
@ bfa4a3be совет по сну
| Коммит
о 788aa028 Drees
| Старые вещи
Если вы относительно плохо знакомы с ними, тогда histedit
может быть лучшим выбором, чем chistedit
, поскольку он предоставляет описания команд в файле histedit для справки. Требуется чуть больше редактирования, чтобы установить команды с помощью обычного редактирования текста (так же, как и обычная перебазировка).
Обратите внимание: чтобы использовать histedit
или chistedit
, вам нужно добавить histedit
к своим расширениям в ~ / .hgrc:
[extensions]
histedit =
Я предложил chistedit
, поскольку он наиболее близок к rebase -i
и работает где-либо в истории. Если вы действительно хотите включить / настроить текущую ревизию в предыдущую, тогда @G. Предложение Демеки strip
может быть хорошим, так как происходящее ясно. Он встроен начиная с Mercuria 2.8. Чтобы получить эквивалентные результаты, как указано выше, вы можете сделать следующее:
hg strip .
hg add
hg commit --amend
Примечание strip
, как и histedit, нужно включить в вашем ~ / .hgrc:
[extensions]
strip =