¿Cómo usar Winmerge con extensiones de Git?
settings git-extensions (5)
Agregue o cambie lo siguiente en el archivo de configuración:
[merge]
tool = winmerge
[mergetool "winmerge"]
cmd = $PROGRAMFILES/WinMerge/WinMergeU.exe "$PWD/$MERGED"
Esta solución es distinta de dos maneras:
- Simplemente llama a
WinMergeU.exe *conflictfile*
, mientras que las llamadas a doble cara adolecen del hecho de que la ventana de la izquierda<<<<<<<
,=======
y>>>>>>>
marcadores que $ MERGED contiene. - Aplicar mergetool en base a repo - Estoy editando el archivo $ GIT_DIR / config. Se puede obtener el mismo resultado llamando a git config sin --system o --global argument. Esto es para notar que hay algunos ámbitos de configuración para elegir .
La variable $ PROGRAMFILES es mantenida por git bash y (a diferencia de la variable similar en windows nativo cmd) navega a "Archivos de programa (x86)".
Estoy usando Git Extensions y preinstala y configura KDiff como la herramienta de diferencias para resolver conflictos de combinación. Aunque soy muy aficionado a Winmerge y me gustaría reemplazar a KDiff con Winmerge.
En la configuración de extensiones de Git, hay configuraciones para cambiar Mergetool, pero parece que no puedo averiguar qué sintaxis debo usar y por qué. Parece que hay 4 variables: $ BASE, $ LOCAL, $ REMOTE, $ MERGED. Parece que debería pasarlos a WinMergeU.exe, pero ¿con qué parámetros de línea de comandos?
Intenté buscar esto algunas veces, pero no hay respuesta que realmente funcione.
En Git Extensions v2.47.3, es realmente fácil configurar esto:
Configuración -> Configuración global -> en la lista desplegable para ''Mergetool'' escribir manualmente: WinMerge
y ver el milagro.
Lo mismo para el menú desplegable ''Difusor''.
|| || ||
// // //
Es una tontería que la opción ''WinMerge'' no se rellene previamente en el menú desplegable. Oh bien.
En Windows 7, esto es lo que finalmente funcionó para mí. Tenga en cuenta la "''c:/path/here''"
cita alrededor de mi ruta de archivos de programa.
[merge]
tool = winmerge
[mergetool "winmerge"]
cmd = "''C:/Program Files (x86)/WinMerge/WinMergeU.exe''" -e "$MERGED"
[diff]
tool = winmerge
[difftool "winmerge"]
cmd = "''C:/Program Files (x86)/WinMerge/WinMergeU.exe''" -e "$LOCAL" "$REMOTE" -dl "Local" -dr
La respuesta de @sebastiaan no funcionó para mí (¿quizás está desactualizada?)
Estas son las "configuraciones globales" que funcionan para mí usando GitExtensions 2.28:
Mergetool: winmerge
Ruta a mergetool: D:/path/to/WinMerge/WinMergeU.exe
Comando Mergetool: "D:/path/to/WinMerge/WinMergeU.exe" -e "$MERGED"
Esto hace que WinMerge use el "archivo de conflicto" generado por git.
-e
permite presionar ESC para cerrar winmerge.
Difftool: winmerge
Ruta a difftool: D:/path/to/WinMerge/WinMergeU.exe
Comando Difftool: "D:/path/to/WinMerge/WinMergeU.exe" -e "$LOCAL" "$REMOTE" -dl "Local" -dr "Remote"
-dl
y -dr
configuran las descripciones para el panel izquierdo y derecho.
Visión de conjunto
Las siguientes son instrucciones sobre cómo configurar el Control de versión de GIT para que pueda utilizar un mejor conjunto de herramientas que la instalación predeterminada. La configuración requiere que GIT Extensions ya esté instalado e implica la configuración de Winmerge en las extensiones de GIT.
Instalación
Siga todas las instrucciones e instálelo en el directorio predeterminado de Winmerge.
Configurar Winmerge en el control de versiones de GIT
Abra un nuevo documento en un editor de texto. Copie / pegue lo siguiente y guarde el documento como "wMerge.sh" en su directorio "C: / Archivos de programa (x86) / Git / bin /".
echo Launching WinMerge: $1 $2 "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -u -dl "Original" -dr "Modified" "$1" "$2"
Vaya a su directorio "Users-> username" y ubique el archivo .gitconfig. Ábralo en su editor favorito copie / pegue el siguiente código y guarde:
[user]
name = enter your name
email = [email protected]
[core]
autocrlf = false
[merge]
tool = winmerge
[mergetool "winmerge"]
cmd = wMerge.sh /"$MERGED/" /"$REMOTE/"
path = c:/Program Files (x86)/winmerge/winmergeu.exe
[mergetool]
keepBackup = false
trustExitCode = false
[diff]
guitool = winmerge
[difftool "winmerge"]
path = c:/Program Files (x86)/winmerge/winmergeu.exe
cmd = /"c:/Program Files (x86)/winmerge/winmergeu.exe/" /"$LOCAL/" /"$REMOTE/"
Ejecute "GitExtensions", vaya a "tools-> Settings-> Git Extensions-> Git Config". Si ha realizado su instalación correctamente y ha hecho referencia a las herramientas en su directorio, su página de configuración global debería verse como a continuación (NOTA: Complete su nombre en nombre y correo electrónico):
mergetool: winmerge
ruta a mergetool: c:/Program Files (x86)/winmerge/winmergeu.exe
Comando mergetool: wMerge.sh "$MERGED" "$REMOTE"
difftool: winmerge
ruta a difftool: c:/Program Files (x86)/winmerge/winmergeu.exe
Comando difftool: "c:/Program Files (x86)/winmerge/winmergeu.exe" "$LOCAL" "$REMOTE"
finales de línea: salida tal como está, confirmación tal como está
Navega a la pestaña de la lista de verificación para verificar que GIT esté todo "verde" y satisfecho con tu configuración.