Mercurial Queues: Unione di patch da repository multipli
-
10-10-2019 - |
Domanda
Sto usando Mercurial Queues su un repository, e hanno posto le patch in un repository di patch. Un altro collaboratore ha clonato il mio coda delle patch e fatto i cambiamenti dei loro propri. Vorrei ora di unire i loro cambiamenti nel mio repository di patch locale.
Sto cercando di trovare un buon flusso di lavoro per l'esecuzione di questa unione che
- riflette di modifiche della conferente nella storia del repository di patch
- invoca strumento di unione per l'utente in caso di conflitti
Inizialmente, ho solo cercato di fondere direttamente le patch. Questo va bene in casi molto semplici, ma non funziona bene quando molte cose sono cambiate, dal momento che le patch dipendono dal contesto linea numero che non sembra come qualcosa che avrei dovuto preoccupare di regolazione me stesso. Nel complesso, ho trovato l'esame di una diff 3 vie di patch di essere troppo complesso.
C'è un modo migliore?
Soluzione
Non c'è ottimo modo per gestire questa situazione. Quello che mi piacerebbe probabilmente finisce per fare è la creazione di due cloni, e qfinish
ing il cerotto in uno e la patch contributori nell'altra. Che quel punto avrete pronti contro termine con effetto netto di ogni patch separata applicata. Poi si hg pull
uno di quei cloni nell'altro, e hg merge
vi permetterà di utilizzare gli strumenti grafici per unire i risultati delle patch - e le uniche differenze dovrebbero essere le differenze nelle vostre patch. A questo punto, idealmente, sarete in grado di qimport
il changeset unione, ma non è possibile farlo, in modo da avere a 'hg diff -r tip-tip 1 -r' per ottenere un nuovo diff che è la differenza tra il prima-tutto-iniziato e le-due-risultati dopo-la fusione-. È quindi 'qimport` che diff e si impegnano alla coda delle patch pronti contro termine con una nota dicendo da dove è venuto.
Decisamente sub-ottimale, ma il meglio che può venire con. Mi piacerebbe sentire una soluzione migliore.
Altri suggerimenti
Ho paura che non c'è automatizzato modo di patch di unione.
Tuttavia, un "trucco" che è possibile utilizzare è quello di creare nuove patch invece di modificare / aggiornare le patch esistenti quando è necessario modificarle. Quando tutti d'accordo sul modo giusto di fare le cose, quindi hg qfold
le patch.
In questo modo è solito essere intensificando su ogni altri piedi come molto da quando si crea nuove patch.