Как исправить репозиторий Mercurial, который не обновляется, так как указывает на отсутствие ревизии в подпункте? - PullRequest
9 голосов
/ 30 октября 2011

Наш ртутный репозиторий застревает при попытке обновить старую ветку с парой субрепаратов / ревизий, которая больше не существует.

abort: unknown revision '22e9bb6a6cd98be85b995f632b2f72d6298f9354'!

Есть ли способ сообщить Mercurial обновить версию или ветку, но не пытаться обновить подпункты?

1 Ответ

7 голосов
/ 31 октября 2011

Субрепо еще существует где-то еще? Вы можете изменить указатель на него, используя раздел [subpaths], который предоставляет слой перевода поверх местоположений в .hgsub.

Если его на самом деле нигде не существует, вы можете использовать некоторую глубокую магию, такую ​​как:

hg debugsetparent REVISION_YOU_WANT
cat /dev/null > .hgsub   # put an empty .hgsub in place
hg commit .hgsub
hg update tip

Это должно создать новую ревизию, которая похожа на REVISION_YOU_WANT, за исключением того, что у нее есть пустой файл .hgsub, так что вы можете обновиться до него.

Было бы намного лучше, если бы вы могли найти подпункт в каком-то новом месте и указать на него подпути.

...