2012-04-11 7 views
5

Completely manual Mercurial merge gelesen, ich habe so eine .hgrc:Mercurial manuelle Zusammenführung nicht starten nicht meld

[ui] 
merge = meld 

[merge-tools] 
meld.priority = 1 
meld.premerge = False 
meld.args = $local $other $base 

[merge-patterns] 
** = meld 

jedoch hg merge -r REV funktioniert und ich nicht, was ich bin fehlt ...

Ich möchte eine manuelle Zusammenführung durchführen, um einige der Änderungen, die der andere Zweig einführt, zu löschen. Der andere Zweig hat einen Änderungssatz, der sich auf mehrere Dateien auswirkt, und ich möchte nicht alle ändern.

Antwort

5

Ich habe zwei Vermutungen. Entweder werden Ihre Konfigurationseinstellungen nicht übernommen, oder Sie haben nicht genug Konflikte, um Mercurial zu berücksichtigen, dass Ihre Zusammenführung eine Lösung erfordert.

Sie können für die ehemalige mit hg showconfig überprüfen - stellen Sie sicher, dass Sie Ihre Meldung Einstellungen sehen.

Wenn sie angezeigt werden, gibt es möglicherweise nicht genug Konflikt zwischen den beiden Changesets, die Sie zusammenführen. Auch wenn premerge auf false gesetzt ist, muss immer noch etwas zusammengeführt werden. Gibt es tatsächliche Änderungen in der gleichen Datei in beiden Änderungssätzen? Vielleicht versuchen Sie hg merge --tool internal:fail und überprüfen Sie dann die hg resolve --list, um zu sehen, was da ist.

+0

Ok, meine Meldungseinstellungen sind korrekt aufgenommen, aber es scheint, dass Sie recht haben, dass es nicht genug Konflikte gibt. Das eingehende Changeset modifiziert einige unmodifizierte Dateien, ich dachte, ich hätte eine manuelle Zusammenführung auslösen können, um einige dieser Änderungen zu löschen, aber es scheint einfach unmöglich zu sein. –

+0

Versuchen Sie 'hg merge --tool internal: prompt' oder' hg merge --tool internal: dump'. Ich weiß nicht, ob sie früher im Prozess abbrechen werden, aber wenn sie das tun, dann können Sie vielleicht die Meldung manuell aufrufen? –

+0

Danke, eigentlich habe ich mein Problem gelöst, indem ich den eingehenden Änderungssatz auf eine viel frühere Überarbeitung meines Projekts umbasiert habe. Das löste einige Konflikte beim Zusammenführen aus, es startete eine Meldung und ich bekam die Möglichkeit manuell auszuwählen, welche Änderungen ich behalten wollte :) –

0

Ich befolge deine Anweisung, MELD zu benutzen, wenn du ein Diff machst. Ich bekomme folgendes:

hg meld file.F 
usage: 
    meld      Start with no windows open 
    meld <dir>     Start with VC browser in 'dir' 
    meld <file>    Start with VC diff of 'file' 
    meld <file> <file> [file] Start with 2 or 3 way file comparison 
    meld <dir> <dir> [dir] Start with 2 or 3 way directory comparison 

meld: error: no such option: -a 

Woher kommt diese Option?

+0

Hallo, du solltest eine neue Frage stellen. Scheint so, als ob mercurial keine korrekten Argumente erhält. –

Verwandte Themen