Mercurial: невозможно отменить отложенные изменения

Похоже, что ShelveExtension только откладывает ваши измененные файлы, оставляя их без отслеживания или удаленными.

Я новичок в Mercurial и пришел из git, поэтому для меня это не ожидается.

Еще большая проблема, которую я не могу hg unshelve с тем, что я предполагаю, является сообщением об ошибке.

Смотри ниже:

незапланированное изменение 'main'

временная фиксация ожидающих изменений (восстановление с помощью «hg unshelve --abort»)

перебазирование отложенных изменений

прервать: незафиксированные изменения

Это ожидаемое поведение, и я просто что-то упускаю?

Как я могу удалить свои измененные файлы без восстановления/фиксации/и т. д.?

Есть ли расширение, которое ведет себя точно так же, как git stash?

Действия по воспроизведению:

введите здесь описание изображения

Окружающая среда:

ОС: Windows 8

Mercurial: Mercurial Distributed SCM (версия 3.0.1). Устанавливается как cygwin /usr/bin/hg (Tortoisehg не установлен, Windows hg установлен, но не используется)

Расширение: ShelveExtension.


person Mr. L    schedule 22.01.2015    source источник


Ответы (1)


Это ожидаемое поведение, и я просто что-то упускаю?

Да, это нормальное поведение. Вам нужно сделать hg addremove (или вручную hg add и hg rm отдельные файлы), если вы хотите, чтобы Mercurial отслеживал создание и удаление файлов. Переименование должно быть сделано с hg mv. Это отдаленно похоже на git add, за исключением того, что вам не нужно делать это для измененных файлов.

Когда вы снимаете с полки, ваш рабочий каталог должен быть чистым. По крайней мере, в нем не должно быть ни отсутствующих файлов (с префиксом ! в hg st), ни измененных файлов (с префиксом M). Вы всегда можете сделать временную фиксацию и hg strip сделать это позже.

Как я могу удалить свои измененные файлы без восстановления/фиксации/и т. д.?

В общем случае нет разумного способа сделать это. Что, если на полке есть изменения в файле, которого больше не существует? Если удаление файла было зафиксировано, вы можете сгенерировать конфликт исправлений, что и делает Mercurial. Но без фиксации конфликта с нет очевидного ответа на эту ситуацию.

Есть ли расширение, которое ведет себя точно так же, как git stash?

Насколько мне известно, это выходит за рамки StackOverflow.

person Kevin    schedule 22.01.2015
comment
Я понял, что если я хочу убрать с полки, я должен иметь дело с отсутствующими и неотслеживаемыми файлами. - person Mr. L; 23.01.2015