Cuando Mercurial se ejecuta bajo cygwin, es un poco complicado averiguar cómo generar spain WinMerge para resolver conflictos de combinación. ¿Cómo puedo hacer esto?¿Cómo puedo configurar Mercurial para usar WinMerge para fusiones, bajo cygwin?
Respuesta
El truco es que las rutas de Cygwin no son lo mismo que las rutas de Windows, por lo que necesita una pequeña secuencia de comandos que convierta las rutas de cygwin a rutas de Windows antes de pasarlas como argumentos a WinMerge.
Así es como se hace:
(1) Crear un script de shell en /usr/bin/winmerge
de la siguiente manera:
#!/bin/sh
"/cygdrive/c/Program Files/WinMerge/WinMergeU.EXE" /e /ub /dl other /dr local `cygpath -aw $1` `cygpath -aw $2` `cygpath -aw $3`
Nota: cygpath
convierte los nombres de ruta. Si WinMerge no está en la ubicación predeterminada, cambie la ruta aquí.
(2) Hacer que el archivo ejecutable
chmod +x /usr/bin/winmerge
(3) Añadir lo siguiente a su archivo ~/.hgrc
:
[ui]
merge = winmerge
[merge-tools]
winmergeu.executable=/usr/bin/winmerge
winmergeu.args=$other $local $output
winmergeu.fixeol=True
winmergeu.checkchanged=True
winmergeu.gui=False
Nota! Probablemente ya tenga una sección [ui] con su nombre en ella. Recuerda combinar mis cambios con los tuyos, no solo agregues una nueva sección [ui]. Por ejemplo, mi .hgrc se ve así:
[ui]
username = Joel Spolsky <[email protected]>
merge = winmergeu
[extensions]
fetch =
[merge-tools]
winmergeu.executable=/usr/bin/winmerge
winmergeu.args=$other $local $output
winmergeu.fixeol=True
winmergeu.checkchanged=True
winmergeu.gui=False
Aquí es la línea shell script que funciona para Subversion/cygwin/WinMerge. La principal diferencia es qué argumentos usar.
/cygdrive/c/Program\ Files/WinMerge/WinMergeU.exe /e /ub /dl "$3" /dr "$5" "`cygpath -aw $6`" "`cygpath -aw $7`" &
Tenga en cuenta que este ejemplo también establece los campos de descripción y lanza las comparaciones en el fondo, de manera que todos los diffs se ponen en marcha a la vez. Si no te gusta, elimina el '&'.
Si no sabe lo que su programa de control de revisiones le está pasando, intente agregar 'echo $ @' a su script de shell. Imprimirá los argumentos pasados al script.
- 1. ¿Cómo puedo configurar mi Cygwin PATH para encontrar javac?
- 2. Configurar Eclipse CDT para usar g ++
- 3. ¿Cómo puedo configurar Eclipse para usar ssh-agent para cvs?
- 4. Nutch-Cygwin Cómo configurar JAVA_HOME
- 5. Cómo configurar Mercurial upstream
- 6. ¿Cómo usar Winmerge con extensiones de Git?
- 7. Mercurial/hg - abortar: fusiones no confirmadas pendientes
- 8. En git, ¿cómo puedo aumentar el contexto para las fusiones?
- 9. Fuerza Mercurial para usar siempre --subrepos
- 10. ¿Cómo puedo configurar PostgreSQL para usar la Autenticación de Windows?
- 11. Archivo ejecutable generado usando GCC bajo cygwin
- 12. mejores prácticas en mercurial: rama vs. clon y fusiones parciales?
- 13. ¿Cómo usar p4merge como la herramienta merge/diff para Mercurial?
- 14. ¿Cómo configurar adecuadamente el complemento Mercurial para Eclipse?
- 15. ¿Cómo manejar fusiones con hgsubversión?
- 16. Configurar Git para usar Plink
- 17. ¿Se puede configurar git para desactivar las fusiones para tipos de archivos específicos?
- 18. ¿Cómo configurar JPA para usar JNDI?
- 19. Cómo configurar un clúster de bajo costo
- 20. ¿Es Mercurial Server una necesidad para usar Mercurial?
- 21. Cómo configurar Mercurial con ssl/security
- 22. Registro mercurial de fusiones entre sucursales con nombre
- 23. ¿Puedo configurar visual studio para usar psake al construir?
- 24. ¿Cómo configuro Mercurial para usar variables de entorno en mercurial.ini
- 25. Configurar Visual Studio para usar más RAM
- 26. ¿Cómo usar el plugin Eclipse Mercurial para producir un parche?
- 27. ¿Las fusiones en Git son diferentes a las de Mercurial?
- 28. Cómo configurar Mercurial en TeamCity 5
- 29. ¿Qué herramienta de combinación debo usar con Mercurial en Windows?
- 30. Git & WinMerge (msysgit)
Ahora puede aceptar su propia respuesta, ¿verdad? –
tengo que esperar 48 horas. –
Probablemente no pondría esa secuencia de comandos en/usr/bin /. Iba a buscarte por no usar cygpath, pero luego desplacé el bloque de código y vi lo que estás haciendo. –