Я использовал hg shelve
в репозитории, где у меня были некоторые незавершенные изменения, потому что мне нужно было переключиться на другую голову и выполнить несвязанные изменения.Как восстановить репозиторий, поврежденный hg unshelve?
Как только моя работа над другой головой была зафиксирована, я переключился обратно в голову, на которой я изначально использовал hg shelve
, и запустил команду hg unshelve
. Это был результат:
$ hg unshelve
unshelving change 'default'
adding changesets
adding manifests
adding file changes
added 1 changesets with 4 changes to 4 files (+1 heads)
abort: uncommitted changes
$ hg diff
warning: ignoring unknown working parent 893e15ecb5b4!
$
Я побежал hg head
до и после команды unshelve
и увидел одинаковые выходы. Конец 893e15ecb5b4
никогда не существовал, я понятия не имею, откуда Меркуриал получил его.
В случае, если это имеет какое-либо значение, я запускаю Mercurial версию 2.8.2 на Ubuntu 14.04.
Как я могу вернуть свой репозиторий в рабочее состояние и как я могу вернуть свои полные изменения?
'hg debugrebuildstate', вероятно, то, что вам нужно вместо # 2. –
@MarkTolonen Потому что это проще, чем то, что я сделал? Или потому, что будет дополнительная информация, которая может быть не синхронизирована? Если это будет позже, то какая информация будет не синхронизирована? – kasperd
Это заставляет Mercurial восстанавливать свое внутреннее состояние, поэтому я думаю, что это более точно. Я получил совет от http://hgtip.com/tips/advanced/2010-04-23-debug-command-tricks/ –