2011-06-02 3 views
5

मैं अपने जावा ऐप के साथ एक भिन्नता बनाने के लिए google-diff-match-patch का उपयोग कर रहा हूं। मैं diff के HTML आउटपुट उत्पन्न करने के लिए विधि diff_prettyHtml विधि का उपयोग करता हूं।diff_match_patch: साइड-बाय-साइड व्यू उत्पन्न करना

हालांकि, मैं दो अलग-अलग आउटपुट लेना चाहता हूं, इसलिए मैं उन्हें अंतर-दर-पक्ष रख सकता हूं ताकि उपयोगकर्ता अंतर को देखने के लिए थोड़ा और आसान बना सकें। (उदाहरण के लिए, ग्रहण की तरह करता है।)

क्या उस पुस्तकालय में कुछ भी है जो मैं इसे प्राप्त करने के लिए उपयोग कर सकता हूं? आप कैसे करेंगे? (यदि संभव हो तो मैं एक अलग पुस्तकालय का उपयोग नहीं करूंगा।)

उत्तर

1

मान लें कि आप HTML को अलग करने का प्रयास नहीं कर रहे हैं, इस मामले में मैं DaisyDiff का उपयोग करने का सुझाव दूंगा, जो आप शायद diff-match-patch के साथ करना चाहते हैं line differencing, which is described on a project wiki page। असल में इसमें हैश कोड की एक सरणी उत्पन्न होती है, जो बाएं और दाएं की प्रत्येक पंक्ति के लिए होती है, और नक्शे में रेखाओं के सापेक्ष उन हैश कोडों का ट्रैक रखती है, और फिर उन एरे को अलग-अलग एल्गोरिदम के माध्यम से चलाती है। फिर आप उचित के रूप में बाएं और दाएं हाइलाइटिंग को पुनर्निर्मित करने के लिए मानचित्र के साथ संयोजन के रूप में diff आउटपुट का उपयोग करते हैं।

+0

बीटीडब्ल्यू, मैंने 'diff_match_patch' का उपयोग करने के लिए आवश्यक "प्रस्तुति कार्य" के साथ मदद करने के लिए एक रैपर लाइब्रेरी लिखी: https://github.com/arnab/jQuery.PrettyTextDiff – arnab