Калейдоскоп для git difftool

18

Я попытался использовать калейдоскоп для git difftoolсравнения двух ветвей.

Поэтому я установил ksdiff и установил его следующим образом:.gitconfig

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

при беге

git difftool myBranch otherBranch 

Получаю ошибку cannot use duplicate files within the same file list

svassr
источник

Ответы:

36

Я нашел способ настроить его. В самом Kaleidoscope в меню Kaleidoscope есть ссылка под названием Integration, которая открывает окно конфигурации для нескольких решений управления версиями.

Окно конфигурации калейдоскопа "Интеграция"

После установки ksdiff, нажав на кнопку Configure , вы добавите следующие строки в ваш .gitconfigфайл.

[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

затем выполнение следующей команды будет последовательно открывать каждый отдельный файл

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

Примечания:

  • -yстоит, чтобы не спросить, хотим ли мы использовать Kaleidoscope для difftool для каждого файла. Ответ по умолчанию - «да».
  • -t KaleidoscopeОпционально здесь, так как по умолчанию difftool уже установлен Kaleidoscopeв нашем .gitconfigфайле.
svassr
источник
1
В моем случае я также должен был добавить [merge] tool = Kaleidoscopeк моему .gitconfig.
Стиги