Caleidoscopio para git difftool

18

Intenté usar el caleidoscopio para git difftoolcomparar dos ramas.

Así que instalé ksdiff y lo configuré como seguir en mi.gitconfig

 [diff]
     tool = kaleidoscope
 [difftool "kaleidoscope"]
     cmd = ksdiff --changeset $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")

cuando corres

git difftool myBranch otherBranch 

Recibo el error cannot use duplicate files within the same file list

svassr
fuente

Respuestas:

36

Encontré una manera de configurarlo. En Kaleidoscope, en el menú Kaleidoscope , hay un enlace llamado Integración que abre una ventana de configuración para varias soluciones de versiones.

Ventana de configuración de "integración" de caleidoscopio

Después de instalar ksdiff, hacer clic en el botón Configurar agregará las siguientes líneas a su .gitconfigarchivo.

[diff]
    tool = Kaleidoscope
[difftool "Kaleidoscope"]
  cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = Kaleidoscope
[mergetool "Kaleidoscope"]
  cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
  trustExitCode = true

luego, el siguiente comando se abrirá sucesivamente en cada archivo diferente

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

Notas:

  • -ysignifica evitar preguntar si queremos usar Kaleidoscope para difftool para cada archivo. La respuesta predeterminada es "sí".
  • -t Kaleidoscopees opcional aquí como la herramienta predeterminada ya está configurada Kaleidoscopeen nuestro .gitconfigarchivo.
svassr
fuente
1
En mi caso también tuve que agregar [merge] tool = Kaleidoscopea mi .gitconfig.
stigi