Вы захотите создать локальный клон, в котором вы сохраните только те наборы изменений, которые также присутствуют в удаленном репозитории. Используйте TortoiseHg , hg log
или подобное, чтобы выяснить, какая из ваших ревизий является самой последней ревизией, которую вы не сделали (той, которая была до начала беспорядка). Здесь может помочь hg outgoing
- в нем будут перечислены все сделанные вами изменения - выберите номер редакции раньше, чем любой из них.
Если целевая ревизия называется good
, а ваш клон называется foo
, тогда выполните:
hg clone -r good foo foo-clean
Это будет быстрая локальная операция - нет причин загружать все заново . Клон foo-clean
будет содержать только наборы изменений до версии good
. Теперь вы можете заменить foo-clean/.hg/hgrc
на foo/.hg/hgrc
, чтобы сохранить локальные настройки репозитория, такие как путь push / pull по умолчанию.
Когда вы убедитесь, что в foo-clean
есть все, что вам нужно от foo
, просто удалите foo
и переименуйте foo-clean
в foo
. Выполните hg pull
, чтобы получить любые новые наборы изменений из удаленного репозитория в свой клон, и продолжайте как обычно.
Если никто не поместил новые наборы изменений в удаленный репозиторий, тогда очень просто определить, какую ревизию вы хотите использовать, как good
выше: hg id default
сообщит вам идентификатор подсказки в удаленном репозитории.