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

10830
svassr

Я попытался с помощью калейдоскопа 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

16

1 ответ на вопрос

33
svassr

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

Kaleidoscope "Integration" configuration window

После установки 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файле.
В моем случае мне также пришлось добавить `[merge] tool = Kaleidoscope` к моему .gitconfig. stigi 9 лет назад 1