Hg rebase abort failed: "неизвестная ревизия"

Иногда при выполнении rebase с использованием плагина MercurialEclipse мой репозиторий попадает в нечетное состояние. Он будет застрял в состоянии "rebasing", но когда я попытаюсь прервать rebase (например, "hg rebase -a" ), я получаю это сообщение об ошибке:

abort: неизвестная версия 'xxxx'!

Где xxxx является хешем ревизии. Обычно на этом этапе я отказался от всякой надежды на выполнение rebase - я просто хочу вернуться в более счастливое время, когда мой репозиторий не был напуган. До сих пор мое решение заключалось в том, чтобы уничтожить мой каталог проектов и снова клонировать его. Существует ли менее решительное решение?

Ответы

Ответ 1

Просто удалите .hg/rebasestate и ваше репо будет работать.

Патч, описанный в this, вызывает внутреннюю функцию clearstate, которая просто отклеивает этот файл.

Ответ 2

В подобных ситуациях я обычно делаю:

$ hg check
$ hg verify
$ hg up -C default

Вместо default используйте любую ветку, над которой работаете. Это требует времени, но также повторное клонирование репо.

Обычно это помогает.