मैं एक ऐसे एप्लिकेशन की तलाश कर रहा हूं जो दो C ++ स्रोतों की तुलना कर सके और कोड-सार्थक अंतरों की खोज कर सके (उन संस्करणों की तुलना करने के लिए जिन्हें अलग-अलग तरीके से पुन: स्वरूपित किया जा सकता है)। बहुत कम से कम, कुछ जो सफेद रिक्त स्थान, टैब रिक्त स्थान और newlines में परिवर्तन की अनदेखी करने की क्षमता है जो स्रोत की कार्यक्षमता को प्रभावित नहीं करते हैं (ध्यान दें कि क्या एक नई पंक्ति को व्हाट्सएप माना जाता है भाषा-निर्भर है , और C और C ++ ऐसा करते हैं )। और, आदर्श रूप से, कुछ ऐसा है जो बिल्कुल सभी कोड-सार्थक अंतरों की पहचान कर सकता है। मैं उबंटू के अधीन हूं।
के अनुसार diff --help | grep ignore
, मैंने यथोचित रूप से काम diff -bBwZ
करने की उम्मीद की थी (मुझे बाद में निपटा जाने के लिए कुछ गलत नकारात्मक मिलने की उम्मीद थी)। फिर भी, यह नहीं है।
अगर मेरे पास स्निपेट्स के साथ निम्नलिखित फाइलें हैं
test_diff1.txt
else if (prop == "P1") { return 0; }
और test_diff2.txt
else if (prop == "P1") {
return 0;
}
फिर
$ diff -bBwZ test_diff1.txt test_diff2.txt
1c1,3
< else if (prop == "P1") { return 0; }
---
> else if (prop == "P1") {
> return 0;
> }
खाली परिणामों के बजाय।
कोड इनपुट के रूप में दोनों इनपुटों पर "फिल्टर" के रूप में इन अंतरों को फ़िल्टर किया जा सकता है, लेकिन फिर परिणामी आउटपुट को वास्तविक टेक्स्ट और लाइन नंबरों को रखने के लिए मतभेदों की अंतिम रिपोर्टिंग के लिए मूल इनपुट्स से वापस बंधना होगा। तो उद्देश्य एक संकलक की आवश्यकता के बिना ठीक से प्राप्य है ... मुझे नहीं पता कि कुछ उपलब्ध है, हालांकि।
क्या उद्देश्य के साथ प्राप्त किया जा सकता है diff
?
अन्यथा, क्या कोई विकल्प है (अधिमानतः, कमांड लाइन के लिए)?