2008-09-04 18 views

Respuesta

-1

supongo que hay una herramienta de CLI para p4merge (que no sé nada acerca).

escribí un post sobre el uso de Changes.app, y algunas otras herramientas de interfaz gráfica de usuario con Mercurial: Using Mercurial with GUI Tools.

Básicamente, lo que necesita saber las expectativas de llamadas de la herramienta CLI que carga la herramienta de diferencias. IE, cómo hacer que cargue datos de un archivo en particular y cómo hacer que espere la salida. Debe haber suficiente información en la publicación para darle algunas ideas.

0

uso el siguiente segmento de Python para lanzar p4merge y utilizarlo con git:

#!/usr/bin/python 
import sys 
import os 

os.system('/Applications/p4merge.app/Contents/MacOS/p4merge "%s" "%s"' % (sys.argv[2], sys.argv[5])) 

No estoy seguro de cómo se ve mercurial para lanzar una herramienta externa de diferenciar sin embargo? Esperemos que sea tan simple como el ajuste de 2 & 5 en la línea anterior a ser el índice de los argumentos a favor de 'marcado en' y 'copia de trabajo actual'.

39

Coloque esto en su ~/.hgrc (o, opcionalmente, su Mercurial.ini en 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 

Requiere Mercurial 1.0 o posterior. Es evidente que necesita para actualizar la ruta a ese ejecutable para reflejar en el que había conseguido instalado p4merge.

+3

Debe usar el ejecutable 'launchp4merge' en lugar de 'p4merge'. De esta forma, si difiere varios pares de archivos simultáneamente, todos aparecen dentro de un proceso p4merge en lugar de en procesos separados. –

+1

Si desea utilizar la sugerencia de Adam, que funciona para mí, use esta línea en lugar de la línea p4.executable anterior: p4.executable = /Applications/p4merge.app/Contents/Resources/launchp4merge – warrenm

+0

Esto no funciona con 'hg diff'. ¿Alguna sugerencia sobre cómo hacer que p4merge sea el editor de diferencias predeterminado? – Tobber

15

Encontré Ry4an's answer como una buena solución, excepto por un problema menor, que dejó a p4merge (bajo mac os) mezclando las entradas de comando. hacer todo lo que se describe en his answer y añadir la siguiente línea en las [Merge-herramientas] sección:

p4.args=$base $local $other $output 

Esta línea le indica en qué orden mercurial p4merge toma sus argumentos.

+3

Edité la respuesta de Ry4an para incorporar tu solución. ¡Gracias! –

3

Tal vez porque estoy trabajando en Windows, pero la solución propuesta no funcionó para mí. En cambio, lo siguiente funciona.

En su ~/.hgrc//Mercurial.ini, que aplica los siguientes cambios:

Enabled "extdiff" extensión:

[extensions] 
hgext.extdiff = 

Agregado comando P4 extdiff:

[extdiff] 
cmd.p4diff = p4merge 

configurado como predeterminado herramienta visual de diferencias:

[tortoisehg] 
vdiff = p4diff 
+2

Si realiza esta ruta, solo tiene que escribir "hg p4" para hacer una diferencia visual porque Mercurial solo requiere que escriba el número mínimo de caracteres para desambiguar un comando. –

+0

¡Gracias! Funcionó en mi Windows. – Regent

13

estoy usando la versión 1.0.1 de TortoiseHg y p4merge funciona fuera de la caja.

apenas van a Configuración global -> TortoiseHg y seleccione las siguientes opciones:

  • tres vías Herramienta de fusión: p4merge
  • herramienta visual de diferencias: p4merge

Screenshot

Cuestiones relacionadas