2008-09-04 13 views

Antwort

-1

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.

0

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.

39

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.

+3

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. –

+1

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

+0

Dies funktioniert nicht mit 'hg diff'. Irgendwelche Vorschläge, wie man p4merge zum Standard-Diff-Editor macht? – Tobber

15

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.

+3

Ich bearbeitete die Antwort von Ry4an, um Ihre Reparatur zu integrieren. Vielen Dank! –

3

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 
+2

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. –

+0

Danke! Es hat in meinem Windows funktioniert. – Regent

13

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

Screenshot