У меня установлено расширение hg shelve (не attic), и я хочу удалить патч. В git это будет git stash drop
. Как это сделать, используя расширение полки?
Hg shelve эквивалент git броска
Ответ 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
, если хотите).