Domanda

Sto usando le code mercuriali molto spesso, e sono davvero contento di loro, ma c'è un flusso di lavoro che trovo troppo complicato. Succede a volte che sto lavorando su una patch, e poi ho rendo conto che ho lavorato su qualcosa che dovrebbe essere in un patch separata (come quando ho corretto un bug che ho trovato durante il lavoro su una caratteristica o aggiunto un altro elemento per che io in realtà voglio avere in una patch separata).

Quindi, lo stato è per la directory di lavoro è: patch A, B, C applicati, più modifiche che dovrebbero essere messi in cerotto C e modifiche che dovrebbe essere in una nuova patch D.

Il mio attuale del flusso di lavoro per questo è la seguente:

hg qnew D.patch files-for-patch-D..
hg qnew temp.patch # changes for patch C
hg qpop
hg qpop
# Now I'm on patch C
hg qfold temp.patch # Integrate changes into patch C
# Here I could have patch errors.. 
hg qpush

So che potrei anche fare in questo modo

hg qrefresh files-for-patch-C..
hg qnew -m "..." new-feature.patch 

Lo svantaggio di questo approccio è che il numero di file per cerotto C è di solito di grandi dimensioni, ed è imbarazzante dover mettere tutti sulla linea di comando. Il numero di file per cerotto D è di solito piccolo in confronto.

C'è un modo migliore per ottenere questo risultato di quello che ho delineato sopra?

È stato utile?

Soluzione

Credo di aver coperto il maggior numero di approcci tipici a questo problema - Ho anche eseguire in esso di volta in volta. Una soluzione alternativa che conosco è quello di fare

$ hg qrefresh -X files-for-patch-D
$ hg qnew D.patch

Questo è il seguente:. escludere i pochi file che hai modificato per patch di D, invece di cercare di sono tutti i file giusti per cerotto C

E 'possibile anche la forza pop patch di D (con hg qpop -f) invece di stashing le modifiche in una patch temporanea. Questo funziona solo se i file toccati dalla patch di D non si intersecano con i cambiamenti nella copia di lavoro, vale a dire, quando si dispone di qrecord non utilizzato dal record di estensione per creare patch di D.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top