টেক্সট ডিফ চেকার

দুটি টেক্সট বা কোড স্নিপেট লাইন ধরে ধরে তুলনা করুন। যোগ হওয়া, সরানো ও পরিবর্তিত লাইন হাইলাইট হয়, ঠিক কোন শব্দগুলো আলাদা তা পর্যন্ত।

ব্রাউজারেই চলেসাইন-আপ লাগে নাকিছুই আপলোড হয় না

পার্থক্য দেখতে দুই বক্সেই টেক্সট পেস্ট করুন।

টেক্সট ডিফ চেকার কীভাবে ব্যবহার করবেন

  1. বাঁ দিকে মূল টেক্সট আর ডান দিকে পরিবর্তিত টেক্সট পেস্ট করুন, অথবা দুটি ফাইল খুলুন।
  2. টাইপ করার সাথে সাথে তুলনা আপডেট হয়। পাশাপাশি বা Unified ভিউ বেছে নিন।
  3. নতুন করে ইনডেন্ট করার মতো অপ্রয়োজনীয় পার্থক্য লুকাতে হোয়াইটস্পেস উপেক্ষা, কেস উপেক্ষা বা ফাঁকা লাইন উপেক্ষা টিক দিন।
  4. প্রতিটি পরিবর্তনের চারপাশে তিন লাইনের প্রেক্ষাপটসহ শুধু পরিবর্তনে মনোযোগ দিতে অপরিবর্তিত লুকান ব্যবহার করুন।
  5. প্যাচ হিসেবে কপি বা .diff ডাউনলোড ক্লিক করে একটি স্ট্যান্ডার্ড unified diff পান, যা git apply বা patch দিয়ে প্রয়োগ করা যায়।

এই ডিফ চেকার কীভাবে কাজ করে

টুলটি দুটি ইনপুটকে লাইনে ভাগ করে Myers difference অ্যালগরিদম চালায়, যা git diff ও GNU diff-এ ব্যবহৃত একই O(ND) অ্যালগরিদম। এটি সন্নিবেশ ও মোছার সবচেয়ে ছোট ক্রম খুঁজে বের করে যা মূল টেক্সটকে পরিবর্তিত টেক্সটে রূপান্তর করে, তাই ফলাফলে যত কম সম্ভব পরিবর্তিত লাইন দেখায়। শুরুর ও শেষের একই লাইনগুলো আগেই বাদ দেওয়া হয়, ফলে হাজার হাজার লাইনের ফাইলের তুলনাও প্রায় তাৎক্ষণিক।

একটি সরানো লাইন ও একটি যোগ হওয়া লাইন পাশাপাশি থাকলে সেগুলো একটি পরিবর্তিত লাইন হিসেবে জোড়া বাঁধে এবং আবার শব্দ ধরে ধরে diff করা হয়। আসলে যে শব্দগুলো বদলেছে সেগুলো আরও গাঢ় হাইলাইট পায়, তাই লম্বা লাইনের ভেতরেও নাম বদলানো ভেরিয়েবল বা সম্পাদিত সংখ্যা চোখে পড়ে।

পাশাপাশি বনাম unified ভিউ

পাশাপাশি ভিউ মূলটি বাঁ দিকে আর নতুন সংস্করণ ডান দিকে রাখে, দুটিরই লাইন নম্বরসহ। লেখা, কনফিগারেশন ফাইল ও ছোট কোড পরিবর্তন রিভিউয়ের জন্য এটি সবচেয়ে সহজ। Unified ভিউ সরানো (-) ও যোগ হওয়া (+) লাইন এক কলামে মিশিয়ে দেখায়, যা কোড রিভিউ টুল ও patch ফাইলের ফরম্যাট।

Unified diff (patch) ফরম্যাট

এক্সপোর্ট করা patch diff -u ফরম্যাট মেনে চলে: একটি ---/+++ হেডার, তারপর @@ -l,s +l,s @@ দিয়ে শুরু হওয়া hunk, যেখানে l প্রথম লাইন নম্বর আর s প্রতিটি ফাইলে hunk-এর লাইনের সংখ্যা। প্রতিটি hunk-এ তিন লাইনের অপরিবর্তিত প্রেক্ষাপট থাকে, তাই কাছাকাছি লাইন সরে গেলেও patch -p0 বা git apply দিয়ে এটি প্রয়োগ করা যায়।

উপেক্ষা অপশন কখন ব্যবহার করবেন

  • হোয়াইটস্পেস উপেক্ষা শুধু স্পেস বা ট্যাবে পার্থক্যযুক্ত লাইনকে সমান ধরে। কোড নতুন করে ইনডেন্ট করার বা ট্যাব থেকে স্পেসে যাওয়ার পরে এটি ব্যবহার করুন।
  • কেস উপেক্ষা SQL, HTML ও লগ ফাইলের জন্য সুবিধাজনক, যেখানে বড়/ছোট হাতের অক্ষর গুরুত্বপূর্ণ নয়।
  • ফাঁকা লাইন উপেক্ষা শুধু ফাঁক রাখার জন্য যোগ বা বাদ দেওয়া লাইনগুলো লুকায়।

সচরাচর জিজ্ঞাসিত প্রশ্ন

আমার টেক্সট কি কোথাও আপলোড হয়?
না। তুলনা পুরোপুরি আপনার ব্রাউজারে JavaScript দিয়ে চলে। আপনার পেস্ট করা কিছুই সার্ভারে পাঠানো হয় না, তাই গোপন কোড, চুক্তিপত্র বা কনফিগারেশন ফাইল নিরাপদে তুলনা করতে পারেন।
টেক্সট কত বড় হতে পারে?
একটি সাধারণ ল্যাপটপে কয়েক হাজার লাইনের ফাইল এক সেকেন্ডেরও কম সময়ে তুলনা হয়। অ্যালগরিদমের খরচ পার্থক্যের সংখ্যার সাথে বাড়ে, তাই সম্পূর্ণ আলাদা দুটি বিশাল ফাইলে সবচেয়ে বেশি সময় লাগে।
পেস্ট না করে কি দুটি ফাইল তুলনা করা যায়?
হ্যাঁ। লোকাল ফাইল লোড করতে প্রতিটি বক্সের উপরের ফাইল খুলুন বোতাম ব্যবহার করুন। ফাইলটি আপনার ব্রাউজার পড়ে, কখনো আপলোড হয় না।
একটি লাইন পরিবর্তিত না দেখিয়ে সরানো ও যোগ হিসেবে দেখায় কেন?
সরানো লাইনের একটি ব্লক সরাসরি যোগ হওয়া লাইনের একটি ব্লকের পাশে থাকলেই কেবল লাইনগুলো “পরিবর্তিত” হিসেবে জোড়া বাঁধে। দুটি লাইনে খুব কম মিল থাকলে শব্দ-স্তরের হাইলাইট বাদ দেওয়া হয়, কারণ সেটি পুরো লাইনকে পরিবর্তিত দেখানোর চেয়ে বেশি বিভ্রান্তিকর হতো।
JSON অবজেক্ট কীভাবে তুলনা করব?
JSON Diff টুল ব্যবহার করুন। এটি পার্স করা কাঠামো তুলনা করে, তাই কী-এর ক্রম ও ফরম্যাটিং ভুল পার্থক্য তৈরি করে না, আর ঠিক কোন পাথগুলো বদলেছে তার তালিকা দেয়।

সম্পর্কিত টুল