2010-03-03 10 views
34

Ho una patch MQ di grandi dimensioni applicata in Mercurial. Quello che è successo è che ho fatto qrefresh e ho incluso i file nella mia patch che non voglio includere. C'è un modo per rimuovere le modifiche a questi file dalla mia patch senza modificarle manualmente? In questo caso se stavo lavorando senza MQ, tutto quello che dovrei fare è tornare indietro.Rimozione file dalla patch Mercurial MQ

risposta

46

Con la patch applicata:

hg qrefresh -X [file1] -X [file2] ... -X [fileN] 

porterà fuori file1 alla fileN della patch. Dopo averlo completato, digitare hg status per verificare che i file siano ora contrassegnati come modificati e quindi non più parte della patch.

+3

L'opzione '-X' deve precedere il nome di ciascun file. Quindi per rimuovere foo e bar, usa 'hg qrefresh -X foo -X bar'. – nmichaels

+0

Se si desidera rimuovere tutti i file dalla patch, invece di rimuovere ogni file, è possibile eseguire 'hg qrefresh -X '*' '. Devi circondare il carattere '*' con ''' per impedire che la shell interpreti prima del mercurial. –

2

Penso che è possibile utilizzare rendere la patch la patch corrente (applicata e nella parte superiore della pila) e quindi hg forget e hg qrefresh.

E ovviamente hg forget è solo hg remove senza richiedere ulteriori opzioni per evitare la cancellazione dei file.

0

Il modo più semplice per eseguire questa operazione è eseguire hg qrefresh con tutti i file tranne quello che si desidera rimuovere, che rimuoverà le modifiche dalla patch senza eliminarle.

Problemi correlati