Kalejdoskop dla git difftool

18

Próbowałem użyć kalejdoskopu git difftooldo porównania dwóch gałęzi.

Więc zainstalowałem ksdiff i ustawiłem go tak, jak w moim.gitconfig

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

podczas biegania

git difftool myBranch otherBranch 

Otrzymuję błąd cannot use duplicate files within the same file list

svassr
źródło

Odpowiedzi:

36

Znalazłem sposób, aby to skonfigurować. W samym Kalejdoskopie w menu Kalejdoskop znajduje się link o nazwie Integracja, który otwiera okno konfiguracji dla kilku rozwiązań wersjonowania.

Okno konfiguracji „Integracja” kalejdoskopu

Po zainstalowaniu ksdiff kliknięcie przycisku Konfiguruj doda następujące wiersze do .gitconfigpliku.

[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

następnie uruchomienie następującego polecenia otworzy kolejno każdy inny plik

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

Uwagi:

  • -ystoi, aby uniknąć pytania o to, czy chcemy użyć Kalejdoskopu dla difftool dla każdego pliku. Domyślna odpowiedź to „tak”.
  • -t Kaleidoscopejest tutaj opcjonalny, ponieważ domyślny difftool jest już ustawiony Kaleidoscopew naszym .gitconfigpliku.
svassr
źródło
1
W moim przypadku musiałem również dodać [merge] tool = Kaleidoscopedo swojego .gitconfig.
stigi