2009-08-10 6 views
7

मुझे केवल छोड़ी गई परियोजनाओं, सिद्धांतों और फीचर सूचियां मिली हैं। लेकिन मुझे ऐसा टूल नहीं मिला जो दो सी ++ स्रोत फ़ाइलों की तुलना कर सकता है और अर्थपूर्ण मतभेद दिखा सकता है।क्या सी ++ के लिए एक काम कर रहे सेमेन्टिक डिफ टूल है?

बेशक मैं दो असंबंधित फ़ाइलों की तुलना नहीं करता, या विकास और रखरखाव के 10 वर्षों के दौरान संचित परिवर्तनों की तुलना नहीं करता। लेकिन आमतौर पर कोड समीक्षा पर चर्चा किए गए परिवर्तनों को अधिक आसानी से समझा जाएगा, यदि उचित अर्थ के साथ प्रस्तुत किया गया है, तो char/word/line level

उत्तर

-1

पर सामान्य परिवर्तनों की बजाय सामान्य रूप से यह संभव नहीं है। एक कार्यक्रम यह भी नहीं बता सकता कि कोई अन्य समाप्त हो जाएगा (प्रसिद्ध Halting Problem)। अधिक सीमित कार्यक्रमों (अंततः बाध्य लूप, और शायद अन्य बाधाओं) के लिए आप और अधिक कर सकते हैं, लेकिन यह भारी कर्तव्य सामग्री है, और भाषा को सी ++ नहीं होना चाहिए, लेकिन कुछ कम मुश्किल, एक सीमित सबसेट या एक सरल भाषा पूरी तरह से होनी चाहिए। शायद यही कारण है कि आप कुछ भी नहीं ढूंढ रहे हैं जो शुरू से अधिक है।

0

हां, इसे "प्रतिबद्धताओं के लिए लेखन टिप्पणियां" और "समस्या ट्रैकिंग" कहा जाता है। अर्थपूर्ण विश्लेषण के लिए मेटाडेटा पर विचार करें।

+0

लेकिन उस आईएसओ परत 8 सूचना के प्रसंस्करण होगा, बजाय एक उपकरण – CsTamas

+0

सच का उपयोग करने का। प्रत्येक संस्करण नियंत्रण टिप्पणियों के साथ इतिहास दिखा सकता है, लेकिन मैंने कभी इसे प्रति-परिवर्तन के आधार पर मर्ज टूल में एकीकृत नहीं देखा है। शायद एक उपयोगी सुविधा हो सकती है ... दूसरी तरफ, कोड में टिप्पणियों के साथ संघर्ष कर सकते हैं। – ima

+0

विलय उपकरण में एकीकृत? गिट की तरह? – greyfade

3

एक वास्तविक "अर्थपूर्ण diff" असंभव है। निकट एक उपकरण होगा जो दो स्रोत फ़ाइलों की तुलना में यह देखने के लिए किया गया था कि प्रोग्राम संरचनाओं (चर, अभिव्यक्ति, बयान, विधियों) पर सार संपादन संपादन (हटाएं, प्रतिलिपि, स्थानांतरित करें, नाम बदलें) द्वारा दूसरे से कैसे निकाला गया था। हमारे Smart Differencer को ऐसे टूल के लिए देखें जो कुछ भाषाओं के लिए ऐसा करता है, सी ++ जल्द ही आ रहा है।

मार्च 2013: सी ++ 11 की जीसीसी/एमएस बोलीभाषा समर्थित है।

+0

कितनी जल्दी? सभी समान उपकरण अभी शुरू किए गए थे ... – CsTamas

+0

30-60 दिनों में अपेक्षित। –

+0

मार्च 2010: यह कई महीनों के लिए उपलब्ध है, बस इस विशेष SO प्रश्न पर वापस आ गया। –

1

लिनक्स कर्नेल डेवलपर्स द्वारा उपयोग की जाने वाली सी के लिए एक है। नहीं सी ++ के लिए हालांकि

http://coccinelle.lip6.fr

+0

@ ब्रैड: वे अर्थात् पैच के बारे में बात करते हैं, लेकिन ऐसा लगता है कि उनका मतलब है "पैटर्न मैचों" जो कि फ़ाइल के कई संस्करणों में सफेद रिक्त स्थान, परिवर्तनीय नाम आदि में परिवर्तन के प्रति असंवेदनशील हैं, लेकिन यह स्पष्ट नहीं है कि वे * यह निर्धारित करने के लिए * दो फाइलें तुलना करें कि वे समान हैं।क्या आप विशेष रूप से कहां कह सकते हैं कि वे कहां कहें? –

+0

आपके पास अर्थशास्त्रीय पैच का अनुमान लगाने के लिए spdiff टूल है http://www.diku.dk/hjemmesider/ansatte/jespera/doc.html। – LB40

संबंधित मुद्दे