unity tool mac osx configuration mercurial perforce p4merge

osx - tool - p4merge download



¿Cómo usar p4merge como la herramienta merge/diff para Mercurial? (6)

¿Alguien sabe cómo configurar Mercurial para usar p4merge como la herramienta merge / diff en OS X 10.5?


Supongo que hay una herramienta CLI para p4merge (de la que no sé nada).

Escribí una publicación de blog sobre el uso de Changes.app y algunas otras herramientas de GUI con Mercurial: Using Mercurial con GUI Tools.

Básicamente, debe conocer las expectativas de llamadas de la herramienta CLI que carga la herramienta diff. 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.


Utilizo el siguiente bit de Python para iniciar p4merge y usarlo 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]))

Sin embargo, no estoy seguro de cuán mercurial parece lanzar una herramienta de diferencia externa. Es de esperar que sea tan simple como ajustar 2 y 5 en la línea anterior a ser el índice de los argumentos para ''registrado'' y ''copia de trabajo actual''.


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 más nuevo. Claramente necesitarás actualizar la ruta a ese ejecutable para reflejar dónde has instalado p4merge.


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 , apliqué los siguientes cambios:

Habilitado la extensión "ExtDiff":

[extensions] hgext.extdiff =

Se agregó el comando extdiff de P4:

[extdiff] cmd.p4diff = p4merge

Configurado como la herramienta de diferencia visual predeterminada:

[tortoisehg] vdiff = p4diff


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

Simplemente vaya a Configuración global -> TortoiseHg y seleccione las siguientes opciones:

  • Herramienta de combinación de tres vías: p4merge
  • Herramienta Visual Diff: p4merge

Encontré la respuesta de Ry4an como una buena solución, excepto por un problema menor, que dejó a p4merge (bajo mac os) mezclando las entradas de comando. Haga todo lo que se describe en su respuesta y agregue la siguiente línea en la sección [merge-tools] :

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

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