Вы получите много разных предложений (mq, histedit, import / export), которые по сути делают одно и то же. И все они будут чувствовать себя неуклюже, потому что Mercurial построен вокруг концепции неизменной истории - изменение истории должно быть трудным. Тем не менее, как вы правильно понимаете, если вы еще не нажали csets, это возможно. Вот процедура, которую я бы использовал - я предпочитаю ее, потому что она не требует никаких расширений:
hg export --git -o ../all-five-csets.patch 0:tip
cd .. # exit the repo
vi all-five-csets.patch # delete the line manually each time it appears (probably only once)
hg init newrepo
cd newrepo
hg import ../all-five-csets.patch
cd ..
mv repo was-repo
mv newrepo repo
Все, что там происходит, это вы экспортируете csets в текстовые представления самих себя. Создание нового пустого репо, а затем повторный импорт csets. Я сделал все из них, потому что у вас есть только пять. Если бы вы смотрели на изменение последних 5 из 500, я бы создал newrepo, выполнив clone -r
, который клонирует «до точки», а затем применил наборы, которые я оставил в их отредактированной форме через импорт. 1005 *