2015-01-28 5 views
3

Я провел hg commit --amend, чтобы исправить фиксацию, но теперь я хочу вернуться к фиксации до того, как я его поправлю. Хеш фиксации фиксации до того, как исправление не появилось в hg log. Итак, как мне это сделать?Mercurial: Как вернуть фиксацию после внесения в нее изменений

ответ

1

commit --amend команда создает резервную копию в каталоге .hg/strip-backup.

Так что вам нужно сделать сейчас, чтобы выполнить

hg unbundle .hg/strip-backup/<your-backup-name> 

Где <your-backup-name> это имя резервного копирования является тот, который сказал вам, когда вы выполнили amend.

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

+0

Как определить имя резервной копии? Я вижу это, когда я запускаю команду 'hg commit -amend', но есть ли способ ее найти, если вы не помните вывод этой команды? – Robz

+0

Ну, просто проверьте, что у вас в этом каталоге, и попытайтесь сопоставить время резервного копирования и время команды 'amdend'. – zerkms

+0

Хм, хорошо, что работает. Я делаю много исправлений во многих записях ... Нет ли лучшего способа? – Robz

4

Если вы включили evolve extension, изменения, которые были удалены с помощью «hg commit -amend», больше не будут перезаписаны. Вместо этого они скрыты с маркерами устаревания, но их можно просмотреть и восстановить в обычном наборе изменений.

Чтобы просмотреть скрытые команды изменений из командной строки, просто добавьте --hidden в обычную команду, например. «hg glog --hidden -l 10». В черепахе панель инструментов фильтра (^ S) имеет значок, который отображает скрытые списки изменений.

Evolve еще не является частью официальной ртути, но должно стать таким. [Как вы видите, это уже поддерживается черепахой.] Я использую его целую вечность, и он работает очень хорошо. Это намного проще, чем пытаться найти старый пакет, которому было дано неясное имя с даты, которую вы больше не можете запомнить. Полная история - все это в вашем местном репо.

+1

Вопрос Newb: заданный идентификатор узла или номер набора изменений для устаревшего набора изменений, как мне восстановить его? То есть как я могу пометить его «не устаревшим»? – jacobsa

Смежные вопросы