atlassian-sourcetree meld

atlassian sourcetree - ¿Cómo usar Meld como herramienta de combinación con SourceTree en Windows?



atlassian-sourcetree (5)

Tengo lo siguiente en mi archivo .gitconfig :

[user] name = myname email = [email protected] [core] autocrlf = true excludesfile = C://Users//myname//Documents//gitignore_global.txt [diff] tool = meld [difftool "meld"] cmd = "C:/Program Files (x86)/Meld/meld/meld.exe" prompt = false [merge] tool = meld [mergetool "meld"] cmd = "C:/Program Files (x86)/Meld/meld/meld.exe" [difftool "sourcetree"] cmd = "C:/Program Files (x86)/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE" [mergetool "sourcetree"] cmd = ''C:/Program Files (x86)/Meld/meld/meld.exe'' /"$LOCAL/" /"$REMOTE/" /"$MERGED/" trustExitCode = true

Y en sourcetree, tengo las siguientes configuraciones:

Sin embargo, cuando hice clic derecho en un archivo en sourcetree para hacer diff externo, pude abrir meld pero el contenido del archivo no se mostró en absoluto.

¿Qué he hecho mal en la configuración?



La configuración real que se debe usar aquí para tener una combinación real de 3 vías, con las pestañas de solo lectura THEIRS y MINE es la siguiente:

$LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

Tenga en cuenta el = después de --output .

Finalmente he acertado con este comando al profundizar en los comentarios sobre la segunda respuesta a esta pregunta: Git se fusiona con Meld .


Para OS X se ve así:

  • Diff Command: meld .

    • Argumentos: @LOCAL @REMOTE
  • Comando de meld : meld .

    • Argumentos: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

PD

Para usarlo desde la línea de comandos, debes instalarlo a través de brew : brew install meld


Si no desea modificar la variable de entorno PATH, puede usar los nombres cortos compatibles con DOS:

C:/Progra~1 = C:/Program Files C:/Progra~2 = C:/Program Files (x86)

Eso evita los espacios que causan problemas en la ruta y juega bien con SourceTree. Es pirata pero funciona. Entonces puedes usar algo como esto como el camino a Meld:

C:/Progra~1/Meld/meld.exe

Es posible que no se garantice que Progra ~ 1 se asigne al directorio de 64 bits, por lo que es posible que tenga que experimentar con cuál se asigna.


Siento que las respuestas existentes perdieron un poco el punto. Aquí está mi propia comida para perros:

Detalle de argumentos:

Diff: $LOCAL $REMOTE Merge: $LOCAL $BASE $REMOTE --auto-merge --output=$MERGED

Para External Diff , debe eliminar $ BASE de su lista de argumentos

Para la combinación de 3 vías, debe hacer clic en la opción External Merge Tool , que solo estará disponible si hay algún conflicto sin resolver.

Actualización: si no está restringido a SourceTree + Meld , creo que la suite Git Extensions + KDiff3 podría ser una buena alternativa de código abierto.