2013-10-28 4 views
5

मैं वर्तमान में meld का उपयोग गिट डिफ टूल के रूप में करता हूं। यह बहुत अच्छा काम करता है, लेकिन मेरे पास संस्करण नियंत्रण के तहत कुछ पीडीएफ फाइलें भी हैं। हमेशा जब मैं git diff करता हूं तो मुझे बदसूरत संदेश मिलते हैं जो मुझे सूचित करते हैं, कि वेल्ड उन बाइनरी फ़ाइलों की तुलना नहीं कर सकता है।मैं पीडीएफ के लिए एक अलग गिट diff उपकरण कैसे जोड़ सकता हूँ?

आज, मुझे diffpdf मिल गया है जो बहुत अच्छा काम करता है। लेकिन मैं पीडीएफ के लिए diffpdf का उपयोग करने के लिए गिट को कैसे कॉन्फ़िगर कर सकता हूं (और केवल उनके लिए)?

मैं इस तरह मिल जाएँगी उपयोग करने के लिए Git कॉन्फ़िगर कर दिया है:

  1. एक स्क्रिप्ट कहा जाता git-meld बनाएँ:

    #!/bin/bash 
    meld "$2" "$5" 
    
  2. यह निष्पादन करें: chmod +x git-meld

  3. मेरी config करने के लिए इसे जोड़े फ़ाइल: git config --global diff.external git-meld

लेकिन जाहिर है कि मैं बस, diffpdf और meld दोनों का उपयोग करने के लिए इस तरह से अनुकूलित नहीं कर सकता।

उत्तर

7

आपको gitattributes मैन्युअल पृष्ठ पर देखने की आवश्यकता है। मूल रूप से, आप एक बाहरी diff चालक उस फ़ाइल की एक विशिष्ट प्रकार की तुलना के लिए उपयोग करने के लिए एक कस्टम आदेश को निर्दिष्ट तैयार करें (~/.gitconfig या ${PROJECT}/.git/config में चला जाता है):

[diff "pdfdiff"] 
    command = diffpdf 

तो आपके द्वारा निर्दिष्ट कुछ प्रकार की फ़ाइलें diff ड्राइवर का उपयोग करें कि (${PROJECT}/.gitattributes में या {PROJECT}/some/subdir/.gitattributes):

*.pdf diff=pdfdiff 

फिर पीडीएफ फाइलों के अलावा सब कुछ अपने सामान्य git diff डिफ़ॉल्ट उपयोग करेगा, लेकिन पीडीएफ फाइलों diffpdf जब आप git diff उन्हें ...

कॉल करेंगे
+0

+1, यह लगभग वही है जो मैं चाहता था। क्या मैं वैश्विक निर्दिष्ट कर सकता हूं कि मैं पीडीएफ को पीडीएफडीएफ के साथ तुलना करना चाहता हूं? (केवल प्रोजेक्ट चौड़े के बजाय) –

+1

एक उपयोगकर्ता के लिए "वैश्विक" के लिए, 'core.attributesfile' कॉन्फ़िगरेशन विकल्प है जो एक फ़ाइल निर्दिष्ट करता है जो उपयोगकर्ता द्वारा काम की जाने वाली सभी परियोजनाओं पर लागू होगा (यह आपके '~/में निर्दिष्ट है। gitconfig' फ़ाइल)। सिस्टम स्कोप पर "ग्लोबल" के लिए, '/ etc/gitattributes' है (मान लीजिए कि आप एक डिस्ट्रो-प्रदत्त 'गिट' संस्करण का उपयोग कर रहे हैं - यह हो सकता है कि यह '/ usr/local/etc/gitattributes' हो या कुछ यदि आप अपना रोल करते हैं स्वयं। यह सब 'git help gitattributes' के शीर्ष भाग में प्रलेखित है। – twalberg

+2

धन्यवाद! (क्या आप टिप्पणी को अपने उत्तर में नहीं रखना चाहते हैं?) –

0

आप git difftool (man git difftool) का उपयोग कर सकते हैं।

$ 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. 
संबंधित मुद्दे