2011-01-01 8 views
7

मैं अपने प्रोजेक्ट में एक फ़ाइल को रीफैक्टर करने में व्यस्त रहा हूं और मेरे परिवर्तनों के हिस्से के रूप में मैंने फ़ंक्शन को और अधिक तार्किक तरीके से पुन: व्यवस्थित किया है। हालांकि, अब जब मैं अपने परिवर्तनों की समीक्षा करने की कोशिश कर रहा हूं तो मुझे एक गड़बड़ मिलती है: diff अनुप्रयोगों को यह नहीं पता है कि फ़ंक्शंस को केवल फिर से व्यवस्थित किया गया था और फ़ाइल सामग्री का 80% बदल दिया गया था।फ़ाइल में फ़ंक्शंस को पुन: व्यवस्थित किया गया था, तो डिफ एप्लिकेशन पागल हो रहे हैं

मैंने एक ही परिणाम के लिए "तुलना से परे" और "WinMerge" दोनों के साथ अंतर देखने की कोशिश की है। क्या ऐसी कोई सेटिंग है जो मेरी मदद कर सकती है?

टैग की गईं, मैं विंडोज़ पर सी # का उपयोग कर रहा हूं।

+2

क्या कोई अनदेखा व्हाइटस्पेस विकल्प है? टैब बनाम रिक्त स्थान पर हो सकता है। –

+3

यदि आपने केवल पुन: क्रमिक कार्यों (यानी कोई वास्तविक परिवर्तन नहीं) के साथ रिफैक्टरिंग शुरू की है, तो आपको अपने परिवर्तन पर भरोसा होना चाहिए। –

+0

@Alex: हां वहाँ है, लेकिन ऐसा लगता है कि यह मदद नहीं कर रहा है। – VitalyB

उत्तर

3

BeyondCompare (और शायद अन्य टूल्स) में एक सुविधा है जहां आप एक रेखा चुन सकते हैं और संदर्भ के रूप में उपयोग करने के लिए दूसरी फ़ाइल में कौन सी रेखा का चयन कर सकते हैं। इस तरह आप कम से कम प्रत्येक विधि को एक-एक करके तुलना कर सकते हैं। इस पर निर्भर करते हुए कि आपके पास कितनी विधियां हैं, यह एक विकल्प हो सकता है। हालांकि यह अभी भी कुछ मैनुअल और शायद कठिन काम की आवश्यकता है।

दूसरी तरफ बस कुछ भी बदले बिना और इसे जांचने के तरीकों को पुनर्व्यवस्थित करना होगा। फिर एक बार जब आप पुनर्नवीनीकरण कक्षा में हों तो आप प्रत्येक विधि के भीतर किए गए किसी भी बदलाव के लिए एक diff टूल का उपयोग कर सकते हैं।

+0

अच्छा बिंदु @ रेखा संदर्भ। धन्यवाद! – VitalyB

1

आपको जो चाहिए वह एक उपकरण है जो कोड संरचनाओं (अभिव्यक्तियों, बयान, घोषणा, कार्यों) और उनके द्वारा किए जाने वाले कार्यों के प्रकार को समझता है: डालें, हटाएं, स्थानांतरित करें, कॉपी करें, प्रतिलिपि बनाएं और नाम बदलें। जैसे आपने "कोड चाल" का एक गुच्छा किया है। परिभाषा के अनुसार पाठ भिन्नता कार्यक्रम ऐसा नहीं कर सकते हैं।

हमारे Smart Differencer कई भाषाओं के लिए ऐसा कर सकते हैं: सी #, सी ++, कोबोल, जावा, पीएचपी, ... यह भाषा निर्माणों के मामले में मतभेद की रिपोर्ट, और लाइन/स्तंभ के लिए सटीक है।

+0

आपकी साइट किसी भी मूल्य निर्धारण जानकारी को सूचीबद्ध नहीं करती है। –

+0

न ही मुझे एक डाउनलोड लिंक दिखाई देता है ... – VitalyB

+0

@ जो व्हाइट: ठीक है, वहां * साइट पुलडाउन मेनू से आसानी से एक मूल्य निर्धारण पृष्ठ पाया गया है। स्मार्ट डिफरेंसर मूल्य निर्धारण के संबंध में मूल्य निर्धारण पृष्ठ पर * एक गड़बड़ थी; यह अभी तय है। –

2

पारंपरिक टेक्स्ट अंतर केवल टेक्स्ट सामग्री में आधारित हैं। इस कारण से आप फ़ाइल सामग्री का 80% बदल गए हैं।

Plastic SCM में एक स्मार्ट differencer है जिसे XDiff कहा जाता है। यह स्थानांतरित या refactored कोड में अंतर खोजने में सक्षम है। XDiff के बारे में अधिक जानने के लिए this post पर एक नज़र डालें। यह merge समर्थन के लिए भी काम करता है।

Plastic SCM एक पूर्ण एससीएम समाधान है। आप इसे इंस्टॉल कर सकते हैं और केवल diff/विलय टूल का उपयोग कर सकते हैं।

+0

मैंने प्लास्टिक एससीएम स्थापित किया है, लेकिन मुझे आपके द्वारा वर्णित "एक्सडिफ" बाइनरी दिखाई नहीं दे रही है। क्या आपका मतलब "binmergetool.exe" शायद है? – VitalyB

+0

@VitalyB: diff/merge टूल mergetool.exe है। एक्सडिफ केवल एक विशेषता है। आप इसे लॉन्च कर सकते हैं और फ़ाइलों को मैन्युअल रूप से चुन सकते हैं। लेकिन आप प्रक्रिया को भी उथल-पुथल कर सकते हैं। जब आप दो तर्क (स्रोत, गंतव्य, आधार, परिणाम फ़ाइल) पास करते हैं तो यह दो तर्क (बाएं और दाएं फाइल), और एक मर्ज टूल पास करते समय एक diff टूल के रूप में कार्य करता है। Binmergetool.exe द्विआधारी विलय उपकरण है। छवियों और बाइनरी फ़ाइलों के बीच diffs/विलय का प्रबंधन करने के लिए प्रयोग किया जाता है। –

+0

ओह। समझ गया। मैं इसे आज़माउंगा। धन्यवाद! – VitalyB

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

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