টেক্সট তুলনা
বাঁ দিকে মূল লেখা আর ডান দিকে নতুন সংস্করণ পেস্ট করুন। মুছে যাওয়া লাইন লাল হয়, যোগ হওয়া লাইন সবুজ হয়, আর সম্পাদিত লাইনের ভেতরে যে শব্দগুলো আসলে বদলেছে সেগুলো হাইলাইট হয়। তাই লম্বা অনুচ্ছেদে একটি শব্দের পরিবর্তনও সহজে চোখে পড়ে।
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
পার্থক্য এখানে দেখতে দুটি বক্সেই টেক্সট পেস্ট করুন।
০টি অক্ষর · ০টি শব্দ · ০টি লাইন
লাল লাইন (−) শুধু মূল টেক্সটে আছে, সবুজ লাইন (+) শুধু বদলানো টেক্সটে আছে; বোল্ড শব্দগুলো আলাদা শব্দ চিহ্নিত করে। সম্পূর্ণ এই ব্রাউজার ট্যাবেই চলে। আপনার টেক্সট কখনও আপলোড বা সংরক্ষণ করা হয় না।
এটি কী করে
টেক্সট তুলনা longest-common-subsequence ডিফ দিয়ে দুটি টেক্সট লাইন ধরে তুলনা করে, বাদ পড়া লাইন লাল ও যোগ হওয়া লাইন সবুজ চিহ্নিত করে এবং সম্পাদিত লাইনের ভেতরে ঠিক কোন শব্দগুলো বদলেছে তা হাইলাইট করে।
the quick brown fox → the quick red fox
- the quick brown fox + the quick red fox
তুলনা কীভাবে কাজ করে
টুলটি দুটি টেক্সটকেই লাইনে ভাগ করে এবং তাদের longest common subsequence খুঁজে বের করে: অর্থাৎ যে লাইনগুলো দুটি টেক্সটেই একই ক্রমে আছে, তাদের সবচেয়ে বড় সেট। এই লাইনগুলো অপরিবর্তিত হিসেবে দেখানো হয়; আসল টেক্সটের বাকি সবকিছু মুছে ফেলা (deletion) এবং নতুন টেক্সটের বাকি সবকিছু যোগ করা (insertion) হিসেবে ধরা হয়। এটি ১৯৭৬ সালে Hunt ও McIlroy-এর বর্ণিত ক্লাসিক Unix diff প্রোগ্রামের মতোই ধারণা, আর ভার্সন-কন্ট্রোল সিস্টেমের পরিবর্তন-ভিউও এই ধারণার ওপর দাঁড়িয়ে।
মুছে ফেলা কয়েকটি লাইনের ঠিক পরেই যদি যোগ করা কয়েকটি লাইন থাকে, তবে সাধারণত সেগুলো একই লাইনের সম্পাদিত রূপ। টুলটি সেগুলোকে জোড়া বানায় এবং প্রতিটি জোড়ার ভেতরে দ্বিতীয় একটি শব্দ-স্তরের তুলনা চালায়। ফলে দুটি লাইন আবার পড়তে না হয়েও আপনি দেখতে পান যে "মঙ্গলবার"-এর জায়গায় "বুধবার" হয়েছে। দুই ভার্সনেরই লাইন নম্বর বাঁ দিকে দেখানো হয়, যাতে নিজের ফাইলে প্রতিটি পরিবর্তন খুঁজে পাওয়া যায়।
অপ্রয়োজনীয় পার্থক্য বাদ দিন: বড়-ছোট হাতের অক্ষর ও স্পেস
দুটি টেক্সটের এমন কিছু পার্থক্য থাকতে পারে যা আপনার কাছে গুরুত্বপূর্ণ নয়: স্পেসের বদলে ট্যাব দিয়ে ইনডেন্ট করা লাইন, এডিটরের রেখে যাওয়া শেষের স্পেস, বা শিরোনাম বড় হাতের থেকে ছোট হাতের অক্ষরে বদলে যাওয়া। হোয়াইটস্পেসের পার্থক্য উপেক্ষা করুন বিকল্পটি একসারি স্পেস ও ট্যাবকে একটি স্পেস ধরে এবং লাইনের শেষের স্পেস উপেক্ষা করে; বড়-ছোট হাতের অক্ষর উপেক্ষা করুন বিকল্পটি অক্ষরের কেস না দেখে লাইন তুলনা করে। হাইলাইট করা আউটপুটে নতুন টেক্সট তবু যেমন লেখা হয়েছে তেমনই দেখানো হয়।
এ ছাড়া তুলনাটি হুবহু: বাঁকা অ্যাপোস্ট্রফি ও সোজা অ্যাপোস্ট্রফি আলাদা অক্ষর, তেমনি হাইফেন ও en dash-ও আলাদা। কোনো লাইন চিহ্নিত হলেও যদি হুবহু একই দেখায়, তবে সাধারণত টাইপোগ্রাফিক বিরামচিহ্ন বা non-breaking space-ই তার কারণ।
সাধারণ ব্যবহার
লেখকেরা সম্পাদকের ফেরত দেওয়া খসড়া মেলান; আইনজীবী ও ক্রেতারা চুক্তির নতুন সংস্করণে কোন ধারা সরেছে তা যাচাই করেন; ডেভেলপাররা দুটি রান থেকে পাওয়া কনফিগারেশন ফাইল বা লগ আউটপুট তুলনা করেন; শিক্ষার্থীরা দেখেন প্যারাফ্রেজ করার ধাপটি আসলে কী বদলেছে। ফলাফল unified-diff ধাঁচে সাধারণ টেক্সট হিসেবে কপি বা ডাউনলোড করা যায়, যেখানে মুছে ফেলা লাইনের আগে বিয়োগ চিহ্ন এবং যোগ করা লাইনের আগে যোগ চিহ্ন থাকে। অন্যান্য পরিষ্কারের কাজের জন্য বাকি টেক্সট টুল-ও একইভাবে, পুরোপুরি আপনার ব্রাউজারেই কাজ করে।
সচরাচর জিজ্ঞাসা
- আমি যে লেখা তুলনা করি, তা কি কোথাও আপলোড হয়?
- না। দুটি টেক্সটই এই ব্রাউজার ট্যাবের ভেতরেই থাকে; তুলনা আপনার ডিভাইসে JavaScript দিয়ে হয়, তাই গোপনীয় খসড়া ও চুক্তি নিরাপদে তুলনা করা যায়।
- সরানো অনুচ্ছেদ কেন মুছে যাওয়া ও যোগ হওয়া হিসেবে দেখায়?
- লাইন-ভিত্তিক diff শুধু সেই লাইনগুলোই রাখে যেগুলো আপেক্ষিক ক্রম বজায় রাখে। কোনো ব্লক সরে গেলে অ্যালগরিদম একটি অবস্থান রেখে দেয় এবং অন্যটিকে মুছে ফেলা ও যোগ করা হিসেবে দেখায়, git diff-ও ঠিক এভাবেই করে।
- লেখা কত বড় হতে পারে?
- প্রতিটিতে কয়েক হাজার লাইন হলেও তুলনা সঙ্গে সঙ্গে হয়। মূল তুলনার আগে শুরু ও শেষের অভিন্ন লাইনগুলো বাদ দেওয়া হয়; বাকি মাঝের অংশ অতিরিক্ত বড় হলে ট্যাব আটকে না দিয়ে টুলটি আপনাকে টেক্সট ভাগ করতে বলে।
- Word বা PDF ফাইল কি সরাসরি তুলনা করা যায়?
- তাদের টেক্সট পেস্ট করুন। Word থেকে কপি করলে অনুচ্ছেদগুলো লাইন হিসেবে থাকে; PDF থেকে কপি করা টেক্সটে প্রায়ই জোর করে দেওয়া লাইন ব্রেক থাকে, যা আগে Remove Line Breaks টুল দিয়ে সরিয়ে নিতে পারেন।
- ডাউনলোড করা ফাইলে মাইনাস ও প্লাস চিহ্নের মানে কী?
- বিয়োগ চিহ্ন দিয়ে শুরু হওয়া লাইন শুধু আসল টেক্সটে আছে, যোগ চিহ্ন দিয়ে শুরু হওয়া লাইন শুধু পরিবর্তিত টেক্সটে আছে, আর দুটি স্পেস দিয়ে শুরু হওয়া লাইন অপরিবর্তিত।