2011-02-13 13 views
10

क्या एक कमांड लाइन प्रोग्राम है जो रिकर्सिव वर्ड-आधारित diff (2 निर्देशिकाओं पर) देता है?कमांड लाइन रिकर्सिव शब्द-आधारित diff?

diff -u रिकर्सिव है, लेकिन यह शब्द तुलना द्वारा शब्द नहीं करता है। wdiff और dwdiff शब्द आधारित diff करता है लेकिन रिकर्सिव diff के लिए अंतर्निहित विकल्प नहीं हैं।

मैं परिणाम को colordiff पर पाइप करना चाहता हूं, इसलिए एक प्रोग्राम जो आउटपुट उत्पन्न करता है colordiff समझता है विशेष रूप से उपयोगी होगा। कोई सुझाव? धन्यवाद!

सीसी

+0

यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है (इसलिए एक टिप्पणी के रूप में पोस्ट करना), लेकिन यदि आप जीयूआई के साथ सिस्टम पर हैं तो जीयूआई diff प्रोग्राम का उपयोग करना आसान हो सकता है। मैं काफी अच्छा होने के लिए meld (http://meld.sourceforge.net/) पाता हूं। –

उत्तर

20

Git यह और आउटपुट रंग कर सकते हैं:

निम्नलिखित अक्सर काम करता है:

git diff --color-words path1 path2 

लेकिन सामान्य रूप में आप

git diff --no-index --color-words path1 path2 

न तो फ़ाइल करने के लिए आवश्यकता हो सकती है एक गिट भंडार में भी होना चाहिए!

--no-index की आवश्यकता है यदि आप और पथ एक गिट काम करने वाले पेड़ में हैं। यदि आप या फाइलों में से एक गिट काम करने वाले पेड़ के बाहर हैं तो इसे elided किया जा सकता है।

मैनपेज: https://git-scm.com/docs/git-diff/1.8.5 (और बाद में ...)

Git diff --no-सूचकांक [--options] [-] [...]

यह फार्म करने के लिए है फाइल सिस्टम पर दिए गए दो पथों की तुलना करें। गिट द्वारा नियंत्रित एक कार्यरत पेड़ में कमांड चलाने के दौरान - कार्यक्षेत्र के पेड़ के बाहर पथों में से कम से कम एक पथ यागिट द्वारा नियंत्रित आदेश के दौरान कमांड चलाते समय --no-index विकल्प को छोड़ दें ।

+0

वह जादू है ... धन्यवाद !! –

+0

+1 - मुझे कभी नहीं पता था कि आप रेपो के बाहर फ़ाइलों पर गिट diff का उपयोग कर सकते हैं। धन्यवाद। –