Sie haben bereits einige Eingaben zu Ihrer Frage on the Mercurial mailing list - Ich ging voran und versuchte, die Skript im Thread vorgeschlagen. Es ist eine lange Weile her, seit ich Subversion benutzt habe, aber ich denke, dass dieses einfache Skript funktioniert der Trick:
#!/bin/sh
cp "$1" "$1.mine"
cp "$2" "$1.base"
cp "$3" "$1.other"
false
Der letzte false
Befehl macht das Skript einen Nicht-Null-Exitcode, signalisiert, dass die Zusammenführung Mercurial gescheitert. Für Windows sieht es aus wie dieses (dank Pavel):
@copy %1 %1.mine
@copy %2 %1.base
@copy %3 %1.other
exit 1
ich die Unix-Version in ~/tmp/m.sh
gespeichert und versucht, es mit keinem anderen merge Einstellungen konfiguriert als
[ui]
merge = ~/tmp/m.sh
ich ein Repository mit zwei Köpfen gemacht, jeweils mit einer widersprüchlichen Änderung zu einer JPEG-Datei (mg.jpg
). Ich fügte auch eine nicht-widersprüchliche Änderung zu einer Textdatei hinzu (a.txt
). Merging gab:
% hg --debug merge
searching for copies back to rev 1
resolving manifests
overwrite None partial False
ancestor 0848c2f8f8f8 local 845b8aa076bd+ remote f611c55aa8ec
mg.jpg: versions differ -> m
a.txt: versions differ -> m
preserving a.txt for resolve of a.txt
preserving mg.jpg for resolve of mg.jpg
picked tool '~/tmp/m.sh' for a.txt (binary False symlink False)
merging a.txt
my [email protected]+ other [email protected] ancestor [email protected]
premerge successful
picked tool '~/tmp/m.sh' for mg.jpg (binary True symlink False)
merging mg.jpg
my [email protected]+ other [email protected] ancestor [email protected]
merging mg.jpg failed!
0 files updated, 1 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg up --clean' to abandon
Das Schöne daran ist, dass die Pre-Merge a.txt
selbst verschmelzen könnte und so keine a.txt.*
Dateien wurden erstellt:
% hg stat
M a.txt
M mg.jpg
? mg.jpg.base
? mg.jpg.mine
? mg.jpg.orig
? mg.jpg.other
Sie können sich wahrscheinlich Feinabstimmung dieses Skript weiter anpassen Ihre Bedürfnisse - wenn Sie dies tun, dann überlegen Sie, ob Sie die Informationen dem Mercurial-Wiki hinzufügen oder zumindest Ihren Fund auf der Mailing-Liste veröffentlichen.
Es funktioniert gut, und hier ist die Windows-Version als auch (vergessen Sie nicht, es in eine .bat Skript zu setzen): @Copy% 1% 1.mine @Copy% 2% 1.Base @ Kopieren% 3% 1.andere exit 1 Das einzige, was ich ein wenig irreführend finde, ist die Benennung von Dateien. Es stellte sich heraus, dass ".other" tatsächlich ".mine" ist und umgekehrt :) Also würde ich dieses Skript wie folgt neu schreiben: @copy% 1% 1.other @copy% 2% 1. Basis @ Kopie% 3% 1.Mine Ausfahrt 1 – pachanga
Hoppla, Stackoverflow verschraubt meine Einrückung :( – pachanga
Meine Antwort ist hier - http://markmail.org/message/whucv2g2qmlagjv6 – pachanga