Kaléidoscope pour git difftool

18

J'ai essayé d'utiliser le kaléidoscope pour git difftoolcomparer deux branches.

J'ai donc installé ksdiff et l' ai réglé comme suit dans mon.gitconfig

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

en courant

git difftool myBranch otherBranch 

Je reçois l'erreur cannot use duplicate files within the same file list

svassr
la source

Réponses:

36

J'ai trouvé un moyen de le configurer. Dans Kaléidoscope lui-même sous le menu Kaléidoscope , il y a un lien appelé Intégration qui ouvre une fenêtre de configuration pour plusieurs solutions de versioning.

Fenêtre de configuration "Intégration" du kaléidoscope

Après avoir installé ksdiff, cliquer sur le bouton Configurer ajoutera les lignes suivantes à votre .gitconfigfichier.

[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

puis l'exécution de la commande suivante ouvrira successivement chaque fichier différent

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

Remarques:

  • -ysignifie éviter de demander si nous voulons utiliser Kaleidoscope pour difftool pour chaque fichier. La réponse par défaut est "oui".
  • -t Kaleidoscopeest optionnel ici car l'outil par défaut est déjà défini Kaleidoscopedans notre .gitconfigfichier.
svassr
la source
1
Dans mon cas, j'ai également dû ajouter [merge] tool = Kaleidoscopeà mon .gitconfig.
stigi