2013-03-21 12 views
63

Wenn widersprüchlichen Änderungen Verschmelzung mit hg merge, Mercurial einer Reihe von Markierungen in die Dateien eingefügt, um in meiner Arbeitskopie wie folgt zusammengefasst werden:Konflikte lösen: Wie "automatisch" Änderungen akzeptiert werden?

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

Dann bearbeite ich manuell alle Dateien als U aus einer Liste von hg resolve --all -l erzeugt markiert und dann erzähle ich mercurial Ich habe sie gelöst durch hg resolve -m file1 file2 file3 ...

In vielen Situationen möchte ich aber akzeptieren entweder nur meine oder nur ihre Änderungen an einigen widersprüchlichen Dateien. Ich denke, zwei einfache sed/awk/was auch immer Scripts namens accept-theirs.sh und accept-my.sh zu erstellen oder gibt es einen "richtigen" Weg, es zu tun?

Antwort

117

Verwenden

hg resolve -t internal:other --all 

zu akzeptieren theirs und

hg resolve -t internal:local --all 

yours

+0

Vielen Dank! Ich verstehe nicht was @djc bedeutet, aber deine Lösung wirkt wie ein Zauber. – psihodelia

+0

@psihodelia djc sagte ziemlich genau das gleiche, versuche 'hg help merge-tools' (mergetools ist ein Alias ​​in den letzten Versionen) –

+5

Als Randnotiz habe ich folgendes Alias:' [alias] mine = resolve -t internal: local theirs = resolve -t internal: others – Melvyn

16

Try this:

hg merge --tool 'internal:other' 

Siehe auch hg help merge-tools für weitere Informationen.

+1

Oder 'resolve' für einzelne Dateien zu akzeptieren/es redoing. (Auch die Zitate um 'intern: andere' sind unnötig.) –

Verwandte Themen