2012-04-03 12 views

Respuesta

28

La extensión de la estantería Mercurial almacena parches debajo de .hg/shelved. Cada uno es un archivo de parche simple, y el nombre del archivo es el nombre del parche. Así que para eliminar un parche llamado 'mypatch' Simplemente puedo quitar el 'mypatch' archivo desde .hg/archivado:

rm .hg/shelved/mypatch

+2

Ver [respuesta de BennyMcBenBen] (http://stackoverflow.com/a/25558246/1286571) para ver una forma de eliminar estantes usando la interfaz de usuario de la estantería de hg. – ForeverWintr

28

Si no desea utilizar los estantes, puede hacerlo de la siguiente manera .

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 
+2

Para evitar la creación de archivos '* .orig', use:' hg revert -aC' –

0

creé dos scripts de shell en base a la respuesta del MINAZ:

hgshelve

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

hgunshelve

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

ponerlos en ~/bin. Necesita sudo apt-get install trash-cli para el comando trash (o modifique la secuencia de comandos para no eliminar el archivo de parche, o use rm, si lo prefiere).

25

Desde el Mercurial shelve documentation (o el uso de hg help shelve):

Para eliminar los cambios aplazados específico, utilice "--delete". Para eliminar todos los cambios archivados, use "--cleanup".

opciones:

-d --delete eliminar el cambio dejado de lado el nombre (s)

lo tanto, si el parche se llama my-patch, entonces sería eliminarla usando:

hg shelve -d my-patch 
+0

Esta debería ser la respuesta aceptada. – gcedo