Подтвердить что ты не робот

Hg shelve эквивалент git броска

У меня установлено расширение hg shelve (не attic), и я хочу удалить патч. В git это будет git stash drop. Как это сделать, используя расширение полки?

4b9b3361

Ответ 1

Расширение Mercurial shelve хранит патчи под .hg/shelved. Каждый из них представляет собой простой файл исправлений, а имя файла - имя патча. Поэтому, чтобы удалить патч под названием "mypatch", я могу просто удалить файл "mypatch" из .hg/shelved:

rm .hg/shelved/mypatch

Ответ 2

Из документации по меркурийному полку (или используя hg help shelve):

Чтобы удалить определенные полные изменения, используйте "--delete". Чтобы удалить все отложенные изменения, используйте "--cleanup".

опции:

-d - удалить удаленные именованные помеченные изменения.

Итак, если ваш патч был вызван my-patch, вы можете удалить его, используя:

hg shelve -d my-patch

Ответ 3

Если вы не хотите использовать полки, вы можете сделать это следующим образом.

hg diff > mylocalchanges.txt
hg revert -a
# Do your merge here, once you are done, import back your local mods
hg import --no-commit mylocalchanges.txt

Ответ 4

Я создал два сценария оболочки на основе ответа minaz:

hgshelve

#!/bin/sh
hg diff > $1 && hg revert -a

hgunshelve

#!/bin/sh
hg import --no-commit $1 && trash $1

Поместите их в ~/bin. Вам нужно sudo apt-get install trash-cli для команды trash (или изменить script, чтобы либо не удалять файл исправления, либо использовать rm, если хотите).