2013-10-28 25 views
5

Şu anda Git fark aracı olarak meld kullanıyorum. Bu harika çalışıyor, ancak sürüm kontrolü altında bazı PDF dosyaları da var. Her zaman git diff yaptığımda, beni bilgilendiren çirkin iletiler alıyorum, bu kaynak bu ikili dosyaları karşılaştıramaz.PDF için farklı bir Git diff aracı nasıl ekleyebilirim?

Bugün çok çalışıyoruz diffpdf bulundu. Ama git PDF'yi (ve sadece onlar için) PDF için diffpdf kullanacak şekilde nasıl yapılandırabilirim?

Böyle birleşmek kullanmak için git yapılandırılmış ettik:

  1. adlı bir komut dosyası git-meld oluşturun:

    #!/bin/bash 
    meld "$2" "$5" 
    
  2. Çalıştırılabilir yapın: chmod +x git-meld

  3. benim config ekleyin dosya: git config --global diff.external git-meld

Ancak açıkçası, bu şekilde hem diffpdf hem de meld'i kullanmam için uyarlayamıyorum.

cevap

7

Sen gitattributes manuel sayfaya bakmak gerekir. Temel olarak, dosyanın belirli türde bir karşılaştırma için kullanılacak özel bir komut belirten bir dış diff sürücüsü oluşturmak (bu ~/.gitconfig veya ${PROJECT}/.git/config gider):

[diff "pdfdiff"] 
    command = diffpdf 

Sonra belirli dosya türlerini fark sürücü kullanan belirtmek (${PROJECT}/.gitattributes veya {PROJECT}/some/subdir/.gitattributes):

*.pdf diff=pdfdiff 

Sonra pdf dosyaları hariç herşey normal git diff varsayılan kullanacaktır, ancak pdf dosyaları diffpdf Eğer git diff onları ...

arayacak
+0

+1, neredeyse istediğim bu. Pdf'leri pdfdiff ile karşılaştırmak istediğimi global olarak belirtebilir miyim? (yalnızca proje kapsamı yerine) –

+1

Tek bir kullanıcı için "global" için, kullanıcının çalıştığı tüm projelere uygulanacak bir dosya belirten "core.attributesfile" config seçeneği vardır (~ /. gitconfig' dosyası). Bir sistem kapsamındaki "global" için, "/ etc/gitattributes" var (bir dağıtılmış '' '' '' '' 'versiyonunu kullandığınızı varsayalım -/usr/local/etc/gitattributes 'ya da Bu, hepsi git git gitattributes'ın üst kısmında belgelenmiştir. – twalberg

+2

Teşekkür ederim! (Yorumu cevabınıza dahil etmek istemiyor musunuz?) –

0

git difftool (man git difftool) 'u kullanabilirsiniz.

$ git difftool #opens in the tool defined in config: git config --get diff.tool 
$ git difftool --tool meld # Opens in meld, regardless of what you configured. 
$ git difftool --tool diffpdf # Opens in diffpdf. 
İlgili konular