Dank des endlosen Einsatzes eines der höflichsten Benutzer hier beim Stack-Austausch konnte ich endlich feststellen, dass das mercurial-Wiki überholt zu sein scheint. Dort heißt es:
Zu ~ / .hgrc hinzufügen:
[extensions] hgext.extdiff = [extdiff] cmd.kdiff3 = [merge-tools] kdiff3.args = $base $local $other -o $output
Die extdiff-Erweiterung wird nicht benötigt, da ich hier keinen neuen hg kdiff3
Befehl definieren möchte .
Mercurial hat jedoch einige weitere Einstellungen für das Zusammenführungswerkzeug:
[ui] merge = kdiff3
In Bezug auf die Mercurial-Hilfe zu Zusammenführungswerkzeugen sollte die ui.merge
Einstellung nicht erforderlich sein, da ich speziell eine Zusammenführungswerkzeugkonfiguration festgelegt habe:
Mercurial verwendet diese Regeln bei der Entscheidung, welches Zusammenführungswerkzeug verwendet werden soll:
- Wenn ein Werkzeug mit der Option --tool zum Zusammenführen oder Auflösen angegeben wurde, wird es verwendet. Wenn es sich um den Namen eines Werkzeugs in der Merge-Tools-Konfiguration handelt, wird dessen Konfiguration verwendet. Andernfalls muss das angegebene Tool von der Shell ausgeführt werden.
- Wenn die Umgebungsvariable "HGMERGE" vorhanden ist, wird ihr Wert verwendet und muss von der Shell ausgeführt werden.
- Wenn der Dateiname der zusammenzuführenden Datei mit einem der Muster im Konfigurationsabschnitt für Zusammenführungsmuster übereinstimmt, wird das erste verwendbare Zusammenführungswerkzeug verwendet, das einem übereinstimmenden Muster entspricht. Hierbei werden binäre Fähigkeiten des Merge-Tools nicht berücksichtigt.
- Wenn ui.merge eingestellt ist, wird es als nächstes betrachtet. Wenn der Wert nicht der Name eines konfigurierten Werkzeugs ist, wird der angegebene Wert verwendet und muss von der Shell ausgeführt werden. Andernfalls wird das benannte Tool verwendet, wenn es verwendet werden kann.
- Wenn im Merge-Tools-Konfigurationsabschnitt verwendbare Merge-Tools vorhanden sind, wird das mit der höchsten Priorität verwendet.
- Wenn ein Programm mit dem Namen "hgmerge" auf dem System gefunden wird, wird es verwendet - es wird jedoch standardmäßig nicht für Symlinks und Binärdateien verwendet.
- Wenn die zusammenzufügende Datei nicht binär ist und kein Symlink ist, wird das interne ": merge" verwendet.
- Die Zusammenführung der Datei schlägt fehl und muss vor dem Festschreiben aufgelöst werden.
Ich habe irgendwie das Gefühl, dass Mercurial sein Verhalten hier (oder einen anderen Teil meines Systems) geändert hat, denn auf allen Maschinen, auf denen ich kdiff3 verwendet habe, habe ich nicht die letzte Einstellung in meiner .hgrc. Das Hinzufügen ui.merge
macht jedoch den Trick.