Восстановить потерянные файлы после коммита и отката в Mercurial.(Эквивалент git reflog?) - PullRequest
11 голосов
/ 11 сентября 2011

порученная работа. Сделал откат, когда я не был на кону репо. Потерянные файлы. Ищите эквивалент git reflog для сохранения моей работы.

Long: Итак, я заканчиваю работу, затем фиксирую.

$ hg commit -A
[...]
adding media/js/fbfriends.js
removing media/js/streams.js
adding media/js/templetizer.js
[...]
$ hg log
$ hg log
changeset:   10:ce3ad416d9a5
tag:         tip
user:        Mihai
date:        Sat Sep 10 22:34:35 2011 -0700
summary:     Save all.

changeset:   9:ceacb7b2192a
user:        Mihai
date:        Sat Sep 10 22:25:34 2011 -0700
summary:     Mootools update.
[...]

Некоторые просмотр:

$ hg checkout 8

Хорошо. Тогда я хотел изменить ревизию 10. Тупо я делаю:

$ hg rollback
rolling back to revision 9 (undo commit)
$ hg status
[...]
M media/js/mootools.js
R media/js/streams.js
! media/js/fbfriends.js
! media/js/templetizer.js
[...]

WTF? Куда делись мои два файла ????

$ hg log
changeset:   9:ceacb7b2192a
tag:         tip
user:        Mihai
date:        Sat Sep 10 22:25:34 2011 -0700
summary:     Mootools update.
[...]

Хорошо, я выясню файлы .orig:

$ hg revert --all
[...]
undeleting media/js/streams.js
forgetting media/js/templetizer.js
reverting media/js/mootools.js
[...] // media/js/fbfriends.js doesn't even show up
$ hg status
? media/js/mootools.js.orig
$ hg history
changeset:   9:ceacb7b2192a
tag:         tip
user:        Mihai
date:        Sat Sep 10 22:25:34 2011 -0700
summary:     Mootools update.

NOOOOOO! Я был по-королевски за 8 коммит, когда делал откат. Попытки восстановления не удаются:

$ hg checkout 10
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ find -name temp
$ hg checkout 9
30 files updated, 0 files merged, 63 files removed, 0 files unresolved
$ find -name temp
$ hg checkout ce3ad416d9a5
abort: unknown revision 'ce3ad416d9a5'!
$ hg checkout ceacb7b2192a
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ find -name temp
$

Но, но .. Я толкнул это! Это все еще должно быть где-то в .hg? Помогите? git reflog, git checkout blah спасли меня в нескольких случаях, но есть ли какие-нибудь ртутные эквиваленты?

РЕДАКТИРОВАТЬ: Сделано резюме ясно. РЕДАКТИРОВАТЬ 2: Лучший заголовок.

1 Ответ

11 голосов
/ 12 сентября 2011

Извините, они пропали.

Сводка справки по команде rollback:

roll back the last transaction (dangerous)

и продолжает:

This command should be used with care. There is only one level of
rollback, and there is no way to undo a rollback. It will also restore the
dirstate at the time of the last transaction, losing any dirstate changes
since that time. This command does not alter the working directory.

Откат - это только не расширенная ртутная команда, которая удаляет историю, и ходят разговоры о перемещении ее в отключенное по умолчанию расширение, как это аналогично деструктивные кузены strip и purge.

Не то, чтобы это помогло вам сейчас, но в будущем клонируйте, прежде чем делать откат.Или, что еще лучше, вместо этого сделайте backout.Возврат добавляет обратное изменение, приводя к той же полученной ревизии подсказки, но с более точной историей («Я сделал это», «Я отменил это»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...