2016-11-09 8 views
1

Я случайно удалил набор изменений в своем ртутном репозитории и удалил слишком много наборов изменений. Я знал, что это приведет к удалению потомков, но по какой-то причине я предположил, что он удалит только потомков на этой ветке или ветвях, которые начинаются с одного из потомков. Вместо этого он удалил ВСЕ набор изменений из каждой ветки, которая была зафиксирована после снятой ревизии.Как восстановить уязвимые группы

The mercurial documentation гласит следующее:

strip это не история переписывания операции и может использоваться на общественных ревизиях

С ревизиями существует где-то, так как это не история переписывания , то как я могу их восстановить?

ответ

2

Mercurial резервирует все резервные пакеты усеченных патчей (например, strip, modify и т. Д.) В папке под названием «strip-backup» в вашем репозитории. Этот каталог находится по адресу <repository-root>/.hg/strip-backup.

В этой папке вы увидите резервные копии всех изменений, но они будут иметь хеши как имена в формате #hash # [- modify] -backup.hg. Сортировка этого в хронологическом порядке может помочь вам найти правильную версию, предполагая, что вы знаете, когда вы запускали операцию с плохими полосками. Если вы этого не сделаете, вы должны восстановить все пакеты в обратном хронологическом порядке до тех пор, пока правильные изменения не будут восстановлены.

Команда для выполнения операции восстановления:

hg unbundle <path-to-bundle-file> 
hg update