¿Cómo configuro el programa FileMerge de Apple para que funcione como la herramienta de fusión de Mercurial? Tengo mi configuración de archivo .hgrc en mi directorio de inicio y simplemente quiero configurar FileMerge como el programa de fusión.Configurando Mercurial - FileMerge para Apple Mac OS X
Respuesta
Como se describe en el hg wiki, esto ha funcionado para mí con varias versiones de Hg:
- crear un script en algún lugar de su
$PATH
, dicen en/usr/local/bin
:
$ vim /usr/local/bin/opendiff-w #!/bin/sh # opendiff returns immediately, without waiting for FileMerge to exit. # Piping the output makes opendiff wait for FileMerge. opendiff "[email protected]" | cat
- Añadir las siguientes secciones para su
~/.hgrc
:
[extdiff] cmd.interdiff = hg-interdiff cmd.opendiff = opendiff-w [merge-tools] filemerge.executable = opendiff-w filemerge.args = $local $other -ancestor $base -merge $output [extensions] extdiff =
Ahora usted puede utilizarlo como $hg opendiff
.
Actualización: La wiki de Mercurial tiene un page about FileMerge. Lea eso primero.
No he intentado utilizar FileMerge
, pero una descripción general puede ayudar. La mayor parte de lo que desea saber se describe en la página MergeProgram del wiki de Mercurial. La versión corta es sus opciones típicas son:
Establezca la variable de entorno HGMERGE
para que apunte a la herramienta de fusión que desea.
o, añada lo siguiente a su .hgrc
:
[ui]
merge = /path/to/toolname
[merge-tools]
toolname.args = $base $local $other
La clave es que una herramienta de combinación tiene que tomar tres argumentos: la revisión base, los cambios locales y los cambios con respecto a la otra rama. Utiliza la primera configuración para especificar la herramienta y la segunda para especificar cómo toma argumentos.
No lo he intentado, pero apuesto a que debe señalar todo el camino hasta el ejecutable de FileMerge, no solo el paquete de la aplicación.
Así:
[ui]
merge = /Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge
Intenté esto, no es tan fácil. –
Lo probé también, obtuve: 'FileMerge [51550: 30f] No se pudo crear la conexión para root' – jammon
Ninguno de los documentos vinculados funcionó para mí sin modificaciones; finalmente, lo que terminé haciendo fue una combinación de the official instructions y "Usar Vim como programa de intercambio de archivos" desde https://www.mercurial-scm.org/wiki/TipsAndTricks. He creado el guión opendiff-w se describe en this answer (aunque lo he denominado hgvdiff), y poner el siguiente en mi .hgrc:
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = /usr/local/bin/hgvdiff
[merge-patterns]
** = filemerge
[merge-tools]
filemerge.executable = /usr/local/bin/hgvdiff
filemerge.args = $local $other -ancestor $base -merge $output
filemerge.checkchanged = true
filemerge.gui = true
[extensions]
extdiff =
Ésta es moderadamente funcional, aunque a veces realiza la comprobación de si un archivo fue cambiado prematuramente, dando lugar a un montón de:
output file wwwroot/zoomingo/website/protected/messages/en/z.php appears unchanged
was merge successful (yn)? n
cuando cierra FileMerge.
Así es como me fijo:
Creado /usr/local/bin/opendiff-w
lleno de:
#!/bin/sh
# opendiff returns immediately, without waiting for FileMerge to exit.
# Piping the output makes opendiff wait for FileMerge.
opendiff "[email protected]" | cat
Luego ejecutó el comando: sudo chmod +x /usr/local/bin/opendiff-w
Luego editado ~/.hgrc
con la siguiente adición:
[extdiff]
cmd.interdiff = hg-interdiff
cmd.opendiff = opendiff-w
[merge-tools]
filemerge.executable = /usr/local/bin/opendiff-w
filemerge.args = $local $other -ancestor $base -merge $output
[extensions]
extdiff =
Luego ejecuté el followi ng comando para comprobar wether funcionó: hg opendiff
Sin embargo, tengo el siguiente error:
exception raised trying to run FileMerge: launch path not accessible
Para solucionarlo me encontré con el siguiente comando:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/
Esto debería funcionar y abre FileMerge.
============================================== =========================
Si está usando TorsoiseHg para Mac, lo único que debe hacer ahora para trabajar con FileMerge es para elegir filemerge de las herramientas Detectar merge/diff cuando aparece la ventana Resolver conflicto y elegir Tool Resolve.
Espero que esto ayude.
- 1. SetWindowsHookEx para Mac OS X?
- 2. ldconfig para Mac OS X
- 3. UIActivityIndicatorView para Mac OS X?
- 4. Un MapKit para Mac OS X?
- 5. Ajustes de oscilación para Mac OS X
- 6. Mac OS X equivalente para DirectShow, GraphEdit
- 7. Extensión de Mercurial OS X habilitando
- 8. Clase UIDevice para Mac OS X?
- 9. ¿Dónde está PyGTK para Mac OS X?
- 10. Makefile para dummies? Mac OS X
- 11. Pascal IDE para Mac OS X
- 12. AirPlay API para Mac OS X
- 13. openAL tutorial para Mac OS X
- 14. Bug Tracking Software para Mac OS X
- 15. Cliente SVN independiente para Mac OS X
- 16. JNotify en Mac OS X?
- 17. GKSession con Mac OS X
- 18. desinstalar ipython mac os x
- 19. clamxav homebrew mac os x
- 20. Mac OS X View Swapping
- 21. Gdb en Mac OS X v10.7 (Lion)
- 22. Código fuente para Mac OS X Actualizaciones de Java
- 23. Necesita orientación sobre JVMs alternativas para Apple OS X
- 24. ¿Muestra de programación bluetooth para Mac OS X?
- 25. Integrando Deltawalker para Mac OS X y la extensión extdiff de Mercurial
- 26. ¿Cómo instalo wxPython en Mac OS X?
- 27. ¿Necesita Mac OS X para desarrollar aplicaciones para iPhone?
- 28. Symbian C++ Desarrollo bajo Mac OS X
- 29. Mac OS X rama pronta git conscientes
- 30. FreeGLUT en Mac OS X Lion
** Para los demás **:' opendiff-w' es el archivo de script al que se hace referencia en el. archivo hgrc (esto no fue demasiado obvio para mí). El primer bloque de código es el contenido. Además, cambié los permisos para agregar ejecutar 'chmod + x opendiff-w' –
** Para otros: ** Algo que no era obvio para mí: ahora necesita ejecutar' $ hg opendiff' (para ver el resultado en 'FileMerge '); '$ hg diff' seguirá mostrándole la salida en la línea de comando –
** Para otros: ** ... y deberá habilitar la extensión extdiff en' ~/.hgrc' –