Ho installato l'estensione hg shelve (non attica) e voglio rilasciare una patch. In git sarebbe git stash drop
. Come faccio a farlo usando l'estensione shelve?hg shelve equivalente gash stash drop
risposta
L'estensione di shelving Mercurial memorizza le patch sotto .hg/shelved. Ciascuno è un semplice file di patch e il nome file è il nome della patch. Quindi, per rimuovere una patch chiamata 'mypatch' posso semplicemente rimuovere il 'mypatch' file .hg/accantonato:
rm .hg/shelved/mypatch
Se non si desidera utilizzare scaffali, è possibile farlo nel modo seguente .
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
Per evitare la creazione di file '* .orig' usare:' hg revert -aC' –
ho creato due script di shell in base alla risposta del Minaz:
hgshelve
#!/bin/sh
hg diff > $1 && hg revert -a
hgunshelve
#!/bin/sh
hg import --no-commit $1 && trash $1
metterli in ~/bin
. È necessario sudo apt-get install trash-cli
per il comando trash
(o modificare lo script per non rimuovere il file di correzione o utilizzare rm
se si preferisce).
Dal Mercurial shelve documentation (o utilizzando hg help shelve
):
Per cancellare specifici cambiamenti accantonato, utilizzare "delete". Per cancellare tutte le modifiche accantonate, usa "--cleanup".
opzioni:
-d --delete eliminare il cambio di nome accantonato (s)
Così, se il cerotto è stato chiamato my-patch
, allora si sarebbe eliminarlo utilizzando:
hg shelve -d my-patch
Questa dovrebbe essere la risposta accettata. – gcedo
Vedi [risposta di BennyMcBenBen] (http://stackoverflow.com/a/25558246/1286571) per un modo per rimuovere gli scaffali usando l'interfaccia utente di hg shelve. – ForeverWintr