Kann jemand Mercurial einrichten, um p4merge als Merge/Diff-Tool auf OS X 10.5 zu verwenden?Wie p4merge als Merge/Diff-Tool für Mercurial verwenden?
Antwort
Ich vermute, es gibt ein CLI-Tool für p4merge (worüber ich nichts weiß).
Ich schrieb einen Blog-Post über Changes.app verwenden, und einige andere GUI-Tools mit Mercurial: Using Mercurial with GUI Tools.
Grundsätzlich müssen Sie die Berufung Erwartungen des CLI-Tool wissen, dass das Diff-Tool lädt auf. IE, wie man es Daten von einer bestimmten Datei lädt, und wie man es auf den Ausgang warten lässt. Es sollte genügend Informationen auf dem Post geben, um Ihnen einige Ideen zu geben.
Ich benutze das folgende Bit von Python p4merge zu starten und es mit git zu verwenden:
#!/usr/bin/python
import sys
import os
os.system('/Applications/p4merge.app/Contents/MacOS/p4merge "%s" "%s"' % (sys.argv[2], sys.argv[5]))
Ich bin nicht sicher, wie Aussehen Mercurial wenn ein externes Diff-Tool zu starten? Hoffentlich ist es so einfach, in der obigen Zeile 2 & 5 als Index der Argumente für 'eingecheckt' und 'aktuelle Arbeitskopie' einzustellen.
Platz diese in Ihre ~/.hgrc
(oder gegebenenfalls Ihre Mercurial.ini
unter Windows):
[merge-tools]
p4.priority = 100
p4.premerge = True # change this to False if you're don't trust hg's internal merge
p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge
p4.gui = True
p4.args = $base $local $other $output
Mercurial 1.0 oder höher erforderlich. Natürlich müssen Sie den Pfad zu dieser ausführbaren Datei aktualisieren, um anzuzeigen, wo Sie p4merge installiert haben.
Ich fand Ry4an's answer, eine gute Lösung zu sein, abgesehen von einem kleinen Problem, das p4merge (unter Mac OS) vermischte die Befehlseingaben. alles in his answer beschrieben tun und die folgende Zeile in den [fusionieren-Tools] Abschnitt hinzufügen:
p4.args=$base $local $other $output
Diese Zeile weist Mercurial in welcher Reihenfolge p4merge nimmt seine Argumente.
Ich bearbeitete die Antwort von Ry4an, um Ihre Reparatur zu integrieren. Vielen Dank! –
Vielleicht, weil ich unter Windows arbeite, aber die vorgeschlagene Lösung hat nicht für mich funktioniert. Stattdessen funktioniert das Folgende.
In Ihrem ~/.hgrc/
/Mercurial.ini
, ich folgende Änderungen vorgenommen:
Enabled "ExtDiff" Erweiterung:
[extensions]
hgext.extdiff =
Added P4 extdiff Befehl:
[extdiff]
cmd.p4diff = p4merge
es als Standard konfiguriert visuelles Diff-Werkzeug:
[tortoisehg]
vdiff = p4diff
Wenn Sie diese Route gehen, müssen Sie nur "hg p4" eingeben, um ein visuelles Diff zu erstellen, da Mercurial nur die Eingabe der Mindestanzahl von Zeichen erfordert, um einen Befehl zu disambiguieren. –
Danke! Es hat in meinem Windows funktioniert. – Regent
Ich benutze Version 1.0.1 von TortoiseHg und p4merge funktioniert out of the box.
Gehen Sie einfach auf Globale Einstellungen -> TortoiseHg und die folgenden Optionen wählen:
- Drei-Wege-Tool Merge: p4merge
- Visual Diff-Tool: p4merge
Sie sollten die ausführbare Datei 'launchp4merge' anstelle von 'p4merge' verwenden. Wenn Sie mehrere Dateipaare gleichzeitig vergleichen, erscheinen sie alle in einem p4merge-Prozess und nicht in separaten Prozessen. –
Wenn Sie Adams Vorschlag verwenden möchten, der für mich funktioniert, verwenden Sie diese Zeile anstelle der obigen Zeile p4.executable: p4.executable = /Applications/p4merge.app/Contents/Resources/launchp4merge – warrenm
Dies funktioniert nicht mit 'hg diff'. Irgendwelche Vorschläge, wie man p4merge zum Standard-Diff-Editor macht? – Tobber