Risoluzione dei conflitti: come accettare automaticamente le "loro" modifiche?


97

Quando unisco modifiche in conflitto usando hg merge, Mercurial inserisce una serie di marcatori nei file da unire nella mia copia di lavoro in questo modo:

<<<<<<< local
  version = 0.2
=======
  version = 0.1
>>>>>>> other

Quindi modifico manualmente tutti i file contrassegnati come U da un elenco prodotto da hg resolve --all -le poi dico a Mercurial che li ho risolti conhg resolve -m file1 file2 file3 ...

In molte situazioni vorrei tuttavia accettare le mie uniche o le loro uniche modifiche su alcuni file in conflitto. Sto pensando di creare due semplici script sed / awk / qualunque sia il nome accept-theirs.she accept-my.sho esiste un modo "appropriato" per farlo?

Risposte:


166

Uso

hg resolve -t internal:other --all

accettare theirse

hg resolve -t internal:local --all

accettare yours


Grazie mille! Non capisco cosa significhi @djc, ma la tua soluzione funziona a meraviglia.
psihodelia

@psihodelia djc ha detto più o meno la stessa cosa, prova hg help merge-tools(mergetools è un alias nelle ultime versioni)
MGP

6
Come nota a margine, ho definito questo alias:[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
Melvyn

1
Sono tre righe da aggiungere alla propria .hgrc, per i neofiti: [alias]allora mine = resolve -t internal:local, allora theirs = resolve -t internal:other. Dopodiché puoi usare hg mine some_file.pyo hg theirs -a(per tutti)
Tobia

1
A partire da phab.mercurial-scm.org/D4379 , potrebbe essere necessario includere anche la --re-mergebandiera (ad esempio hg resolve -t internal:other --re-merge --all)
Ethan Koenig

23

Prova questo:

hg merge --tool 'internal:other'

Vedi anche hg help merge-toolsper maggiori informazioni.


1
O resolveper file singoli / rifarlo. (Inoltre, le citazioni in giro internal:othernon sono necessarie.)
Chris Morgan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.