Esiste un modo per prendere il controllo manuale completo sul processo di unione in Mercurial?completamente manuale merge Mercurial
Voglio essere in grado di scegliere la direzione di file di unione, anche per i file senza conflitti. È possibile?
Esiste un modo per prendere il controllo manuale completo sul processo di unione in Mercurial?completamente manuale merge Mercurial
Voglio essere in grado di scegliere la direzione di file di unione, anche per i file senza conflitti. È possibile?
Turn "pre-merge" off nella configurazione unione. Quindi tutto conta come un conflitto e puoi scegliere "sinistra" o "destra" per ogni cambio di file.
[merge-tools]
mymergetool.premerge = False
una fusione è sempre eseguita tra la revisione genitore della directory di lavoro e un'altra revisione, per impostazione predefinita l'altra testa nel repository.
Se si desidera unire in un altro "direzione" è possibile cambiare ramo è nella directory di lavoro verificando una revisione specifica:
hg update -r [rev]
per vedere quale dirige avete nella vostra repository eseguire il seguente comando:
hg heads
in alternativa, se si sta utilizzando fetch
è possibile utilizzare l'opzione --switch-parent
di unire nella direzione opposta:
hg fetch --switch-parent
Non è possibile modificare la direzione dell'unione su una base file per file poiché Mercurial funziona con i changeset che interessano un intero repository non registrando le modifiche su singoli file come CVS.
Vedo che ha accettato la risposta, ma non penso che sia in realtà quello che stava chiedendo. Gli hai detto come scegliere "left" o "right" per tutti i non-conflict, ma se vuole mixare e abbinare ha bisogno di disattivare la "pre-merge" interna prima di lanciare il suo strumento di unione. –
Modificare il file di configurazione in questo modo:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output
Di default mette l'argomento --auto
su KDiff3 unioni auto così KDiff3.
+1 perché sono alle prese con questo per mezz'ora, e tu sei il primo a raccomandare di rimuovere l'argomento '--auto'. Mi ci vorrà un'eternità per trovarlo (come già mi mancava tutte le altre volte avevo bisogno di unire manualmente). –
In caso di KDiff3 è fondamentale aggiungere l'opzione --qall
(vedere http://kdiff3.sourceforge.net/doc/documentation.html). Ci sarà una fusione automatica di alcuni conflitti senza questa chiave (come "automaticamente risolvere semplici conflitti" dal menu "Merge"). Quindi la linea di comando più appropriata è:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = False
kdiff3.args=$base $local $other -o $output --L1 base --L2 local --L3 other --qall
giorno d'oggi i si potrebbe provare 'hg merge --tool interno: prompt' –
Probabilmente sarebbe d'aiuto a qualcuno, perché né frammento di sopra né al di sotto non mi ha aiutato. Ho aggiunto '[ui] -> merge = internal: merge' e completamente disabilitato gli strumenti di risoluzione dopo l'unione fallita. In realtà [questo] (http://i.stack.imgur.com/WNHq4.png) strumento fastidioso ha iniziato ad apparire dopo aver aggiornato la mia versione Mercurial. – ivkremer