बड़ी फ़ाइल डिफ

दो बड़ी लोकल फ़ाइलों की पंक्ति-दर-पंक्ति या बाइट-दर-बाइट तुलना करें, व्हाइटस्पेस, लाइन एंडिंग और एन्कोडिंग विकल्पों तथा डाउनलोड करने योग्य रिपोर्ट के साथ।

आपका इनपुट और फ़ाइलें ब्राउज़र में ही रहते हैं

फ़ाइलें

मूल फ़ाइल

कोई भी लोकल फ़ाइल। यह इसी डिवाइस पर रहती है।

बदली हुई फ़ाइल

कोई भी लोकल फ़ाइल। यह इसी डिवाइस पर रहती है।

दोनों फ़ाइलें Web Worker में 1 MiB ब्लॉकों में पढ़ी जाती हैं। हर पंक्ति केवल हैश के रूप में रखी जाती है, और स्क्रीन पर दिखने वाला टेक्स्ट फ़ाइलों से दोबारा पढ़ा जाता है। कुछ भी अपलोड या सेव नहीं होता।

अंतर

बदली हुई पंक्तियाँ या बाइट रेंज देखने के लिए एक मूल और एक बदली हुई फ़ाइल चुनें।

इस पृष्ठ पर

बड़ी फ़ाइल डिफ ऐसी दो लोकल फ़ाइलों की तुलना करता है जो टेक्स्ट बॉक्स के लिए बहुत बड़ी हैं: कई गीगाबाइट के लॉग, CSV एक्सपोर्ट, SQL डंप या बिल्ड। टेक्स्ट फ़ाइलों की तुलना पंक्ति-दर-पंक्ति और बाइनरी फ़ाइलों की बाइट-दर-बाइट होती है, और परिणाम बदलावों की वर्चुअलाइज़्ड तालिका तथा डाउनलोड करने योग्य रिपोर्ट के रूप में मिलता है।

विस्तृत कार्यक्षमता

दोनों फ़ाइलें Web Worker के अंदर 1 MiB ब्लॉकों में पढ़ी जाती हैं। टेक्स्ट रखने के बजाय हर पंक्ति 64-बिट हैश बन जाती है, इसलिए एक फ़ाइल पर लगभग 8 बाइट प्रति पंक्ति खर्च होते हैं। व्हाइटस्पेस और लाइन एंडिंग विकल्प हैश बनाते समय लागू होते हैं: हूबहू तुलना, पंक्ति के अंत का व्हाइटस्पेस अनदेखा करना, व्हाइटस्पेस की मात्रा में बदलाव अनदेखा करना या सारा व्हाइटस्पेस अनदेखा करना; CRLF और LF को एक ही लाइन एंडिंग माना जा सकता है। UTF-8 और UTF-16 का हैश Unicode अक्षरों के रूप में बनता है, इसलिए दोनों एन्कोडिंग में सेव किया गया एक ही टेक्स्ट मेल खाता है। Windows-1251 या Shift_JIS जैसी पुरानी एन्कोडिंग की तुलना उनके बाइट से होती है।

पंक्ति मिलान पहले साझा शुरुआत और अंत को छोड़ देता है, फिर उन पंक्तियों पर एंकर करता है जो दोनों फ़ाइलों में ठीक एक बार आती हैं (patience diff), और बीच के अंतरालों को Myers एल्गोरिदम से संरेखित करता है। जिस अंतराल में बहुत समय लगेगा, उसे एक प्रतिस्थापन ब्लॉक के रूप में दिखाया जाता है, और पेज यह बताता है। केवल स्क्रीन पर दिखने वाली पंक्तियाँ फ़ाइलों से दोबारा पढ़ी जाती हैं, इसलिए लाखों बदली हुई पंक्तियों में स्क्रॉल करना हल्का रहता है।

बाइनरी मोड बाइट की ब्लॉकों में तुलना करता है और हर अलग रेंज को उसके ऑफ़सेट, लंबाई और दोनों ओर के पहले 16 बाइट के साथ सूचीबद्ध करता है; आकार का अंतर आख़िरी रेंज बन जाता है। टेक्स्ट रिपोर्ट unified diff (.diff) होती है; बाइनरी रिपोर्ट CSV। दोनों चुनी गई फ़ाइल में स्ट्रीम होकर लिखी जाती हैं।

व्यावहारिक उदाहरण

दो लॉग फ़ाइलें: 20 लाख पंक्तियों वाले लॉग की उस कॉपी से तुलना, जिसमें 40 पंक्तियों का स्तर INFO से WARN हो गया है, 40 हटाई गई और 40 जोड़ी गई पंक्तियाँ अलग-अलग हंक में दिखाती है, हर एक के साथ संदर्भ की तीन पंक्तियाँ।

Windows और Unix कॉपी: CRLF फ़ाइल की उसकी LF कॉपी से तुलना में, लाइन एंडिंग विकल्प चालू रहने तक कोई अंतर नहीं दिखता; इसे बंद करें तो हर पंक्ति अलग होती है।

दोबारा फ़ॉर्मैट किया गया इंडेंटेशन: मात्रा में बदलाव अनदेखा करें चुनें, और जो पंक्तियाँ केवल शब्दों के बीच स्पेस या टैब में अलग हैं, उन्हें बराबर माना जाता है।

फ़र्मवेयर इमेज: बाइनरी मोड में, संस्करण स्ट्रिंग और चेकसम में अलग दो बिल्ड पुराने और नए बाइट को hex में दिखाने वाली दो छोटी रेंज दिखाते हैं।

इस उपकरण का उपयोग कैसे करें

  1. फ़ाइलें चुनें

    मूल और बदली हुई फ़ाइल ड्रॉप करें या चुनें। दोनों चुनते ही तुलना शुरू हो जाती है।

  2. विकल्प सेट करें

    पहचानें, टेक्स्ट पंक्तियाँ या बाइनरी बाइट चुनें, साथ ही एन्कोडिंग, व्हाइटस्पेस नियम और यह कि लाइन एंडिंग गिनी जाएँ या नहीं। नए विकल्पों के साथ फिर से चलाने के लिए तुलना करें चुनें।

  3. बदलाव पढ़ें

    सारांश हटाई और जोड़ी गई पंक्तियाँ और हंक गिनता है। हंक के बीच जाने के लिए पिछला बदलाव और अगला बदलाव का उपयोग करें, और आसपास अधिक या कम अपरिवर्तित पंक्तियाँ दिखाने के लिए संदर्भ पंक्तियाँ बदलें।

  4. रिपोर्ट डाउनलोड करें

    टेक्स्ट के लिए unified diff, या बाइनरी फ़ाइलों के लिए बाइट रेंज की CSV डाउनलोड करें।

सुझाव और सर्वोत्तम प्रथाएं

  • जब किसी भी फ़ाइल के पहले 8 KiB में NUL बाइट हो, तो पहचानें बाइनरी पर चला जाता है, जब तक फ़ाइल UTF-16 BOM से शुरू न हो।
  • पंक्तियों की तुलना हैश से होती है। दो अलग पंक्तियों का एक ही 64-बिट हैश होना बेहद असंभावित है, और तालिका हमेशा असली टेक्स्ट दिखाती है।
  • क्रम बदले गए टेक्स्ट ब्लॉक diff -u की तरह एक हटाने और एक जोड़ने के रूप में दिखते हैं।
  • रद्द करें worker को तुरंत रोक देता है; फ़ाइलें चुनी हुई रहती हैं।
  • दो छोटे अंशों पर जल्दी नज़र डालने के लिए, टेक्स्ट डिफ व्यूअर पंक्तियों के अंदर बदले हुए शब्दों को हाइलाइट करता है।

अगला कदम चुनने में मदद करें

हमें आगे क्या बेहतर करना चाहिए?

एक सुझाव चुनें। ये विचार हैं, वादा की गई सुविधाएँ नहीं।

एक विकल्प चुनें

वोट केवल चुने गए विकल्प को गुमनाम गिनती के रूप में भेजता है। इसमें इनपुट, फ़ाइल डेटा, URL, कुकी या पहचानकर्ता नहीं होते और इसे इस ब्राउज़र में सहेजा नहीं जाता। पेज फिर लोड करने पर दोबारा वोट दिया जा सकता है।