Mercurial'da, harici dif ve birleştirme araçları için bir model tanımlanabilir (böylece yalnızca belirtilen desenle eşleşen dosyalar için çağrılırlar):Git: difftool ve mergetool için desenleri yapılandırın
[diff-patterns]
**.ext = difftool
[merge-patterns]
**.ext = mergetool
Bu tür örüntüler Git'te nasıl tanımlanır? git-config (1) 'deki
[mergetool] bölümü herhangi bir desen, maske veya benzer herhangi bir şeyden söz etmez.
EDZ:
İşte .git/config'un ilgili bir parçası:
[diff]
tool = difftool
[difftool "difftool"]
cmd = difftool.git.sh "$LOCAL" "$REMOTE" "$BASE"
[merge]
tool = mergetool
[mergetool "mergetool"]
cmd = mergetool.git.sh "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
Artık tüm dosyalar için çalışıyor.
Benim difftool ve mergetool olarak adlandırılacak
x x x x :
*.ext diff=difftool
*.ext merge=mergetool
Ayrıca
[diff "difftool"]
name = my custom diff driver
driver = difftool.git.sh %A %B %O
[merge "mergetool"]
name = my custom merge driver
driver = mergetool.git.sh %A %B %O %A
değerini .git/config dizinine ekledim.
Şimdi
git difftool
çalışıyorum. difftool yerine KDiff3 çağırır. Neyi yanlış yapıyorum?
Yorum: Test etmek daha kolay olduğundan difftool yerine mergetool ile oynuyorum çünkü difftool'ü yapılandırmayı başarabilirsem, mergetool'ü nasıl yapılandıracağımın açık olacağına inanıyorum.
DÜZENLEME:
Artık çalışır.
.zg/info/öznitelikleri:
.ext diff=difftool
difftool.git.sh (PATH içinde)
#!/bin/sh
difftool.jar "$2" "$5"
Ancak bir Windows üzerinde yan etki: git diff
şimdi APPCRASH ile sonuçlanıyor.
git diff
çökmesini veya asılmasını nasıl önleyeceğimi anladım: git difftool
kullanmalı veya git diff
sh
: sh -c "git diff"
Aynı şey, sürücü için de geçerli mi? Çalışmayı başaramadı. Gerçekten basit bir örneğe ihtiyacım var. – utapyngo