Kaleidoskop untuk git difftool

18

Saya mencoba menggunakan kaleidoskop untuk git difftoolmembandingkan dua cabang.

Jadi saya menginstal ksdiff dan mengaturnya seperti ikuti di.gitconfig

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

saat berlari

git difftool myBranch otherBranch 

Saya Menerima kesalahan cannot use duplicate files within the same file list

svassr
sumber

Jawaban:

36

Saya menemukan cara untuk mengkonfigurasinya. Dalam Kaleidoscope itu sendiri di bawah menu Kaleidoscope ada tautan yang disebut Integration yang membuka jendela konfigurasi untuk beberapa solusi versi.

Jendela konfigurasi "Integrasi" Kaleidoskop

Setelah menginstal ksdiff mengklik tombol Configure akan menambahkan baris berikut ke .gitconfigfile Anda .

[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

kemudian menjalankan perintah berikut ini akan terbuka berturut-turut setiap file yang berbeda

git difftool myBranch otherBranch  -y -t Kaleidoscope

-

Catatan:

  • -yberdiri untuk menghindari meminta untuk bertanya apakah kita ingin menggunakan Kaleidoskop untuk difftool untuk setiap file. Jawaban default adalah "ya".
  • -t Kaleidoscopeada optionnal di sini karena difftool default sudah diatur ke Kaleidoscopedalam .gitconfigfile kami .
svassr
sumber
1
Dalam kasus saya, saya juga harus menambahkan [merge] tool = Kaleidoscopeke .gitconfig.
stigi