مواد پر جائیں

دو تحریروں کا موازنہ کریں

دونوں ورژنز پیسٹ کریں اور دیکھیں کہ بالکل کیا بدلا، ساتھ ساتھ، ایک ایک لفظ تک۔ وہی الگورتھم جو git استعمال کرتا ہے — لائن بہ لائن اندازہ نہیں جو ایک لائن شامل کرتے ہی بکھر جائے۔

  • کبھی محفوظ نہیں کی جاتی
  • نہ قطار، نہ انتظار
  • نہ سائن اپ، نہ واٹر مارک
ویو

یہ کیسے کام کرتا ہے

1

دونوں ورژنز پیسٹ کریں

اصل ایک طرف، نیا دوسری طرف۔ یا دو فائلیں ڈراپ کریں۔

2

فرق دیکھیں

شامل، ہٹائی گئی اور تبدیل شدہ لائنوں پر نشان لگایا جاتا ہے، اور تبدیل شدہ لائن کے اندر بالکل وہی الفاظ نمایاں کیے جاتے ہیں۔

3

غیر اہم چیزیں نظر انداز کریں

بڑے چھوٹے حروف، اسپیسنگ اور خالی لائنیں، ہر ایک کو نظر انداز کیا جا سکتا ہے — اور اگر دو تحریریں صرف اسی وجہ سے ایک جیسی ہوں تو صفحہ آپ کو بتا دیتا ہے۔

کون سی لائن ایک جیسی مانی جاتی ہے

موازنہ لائن پر نہیں بلکہ ایک key پر ہوتا ہے۔ ہر لائن کو جو بھی نظر انداز کرنے والے آپشنز آن ہوں ان کے مطابق ایک key میں بدلا جاتا ہے، diff ان keys پر چلتا ہے، اور آپ کو ہمیشہ آپ کا اصل ٹیکسٹ ہی دکھایا جاتا ہے — اس لیے “بڑے چھوٹے حروف نظر انداز کریں” آن کرنے سے یہ بدلتا ہے کہ کون سی لائنیں میل کھاتی ہیں، مگر دکھائی جانے والی تحریر کا ایک حرف بھی نہیں بدلتا۔ اسپیس کے دو الگ آپشنز ہیں اور ان میں ان کے لیبلز سے زیادہ فرق ہے: ایک لائن کے سروں کو تراشتا ہے، دوسرا پہلے اسپیسز اور ٹیبز کے سلسلوں کو ایک اسپیس میں سمیٹتا ہے اور پھر تراشتا ہے۔ کوئی بھی whitespace کو مکمل طور پر نہیں ہٹاتا، اور سمیٹنے والا صرف عام اسپیسز اور ٹیبز ڈھونڈتا ہے، اس لیے لائن کے بیچ میں ideographic space یا non-breaking space ویسی ہی رہتی ہے اور فرق کے طور پر گنی جاتی ہے۔

خالی لائنیں نظر انداز کرنا وہ آپشن ہے جس کے ایک نتیجے کا کوئی ذکر نہیں کرتا: خالی لائنیں موازنہ چلنے سے پہلے ہٹا دی جاتی ہیں، اس لیے نتیجے کے ساتھ دکھائے گئے لائن نمبرز صرف باقی بچی لائنوں کو گنتے ہیں، اور آپ کی فائل کے لائن نمبرز سے میل نہیں کھاتے۔ آپشن بند ہو تو یہ بالکل میل کھاتے ہیں۔ تبدیل شدہ لائن کے اندر الفاظ کی سطح پر نمایاں کرنا صرف بڑے چھوٹے حروف والی سیٹنگ کی پیروی کرتا ہے اور کسی کی نہیں — اسپیس والے آپشنز وہاں تک نہیں پہنچتے، اس لیے کسی اور وجہ سے بدلی گئی لائن کے اندر اسپیسنگ کے فرق بھی تبدیلی کے طور پر رنگے جاتے ہیں۔

کاپی ہونے والا نتیجہ پڑھنے کے لحاظ سے ہر اہم پہلو میں unified diff ہے — دونوں فائل ہیڈرز، مائنس لائنیں، پلس لائنیں، ہر تبدیلی کے ارد گرد سیاق کی تین لائنیں — ایک استثنا کے ساتھ جو اس پر بھروسا کرنے سے پہلے جان لینا چاہیے۔ اس کے hunk مارکرز میں لائن رینجز نہیں ہوتیں، اس لیے یہ بگ رپورٹ، کوڈ ریویو کمنٹ یا ای میل کے لیے بنا ہے، اور patch اور git apply کمانڈز اسے قبول نہیں کریں گی۔ اگر آپ کو پڑھنے کے بجائے لاگو کرنے والی چیز چاہیے تو اسے git سے بنائیں۔

جب آپ کو کچھ اور چاہیے

منظم فارمیٹس کا لائنوں کی صورت میں موازنہ برا ہوتا ہے، اور ناکامی باریک نہیں بلکہ واضح ہوتی ہے: دو JSON دستاویزات جو صرف keys کی ترتیب میں مختلف ہوں، یا دو CSVs جن میں ایک کالم کی جگہ بدلی ہو، تبدیلیوں کی ایسی دیوار بن کر آتی ہیں جو کچھ نہیں بتاتی۔ ان کا diff کسی ایسی چیز سے نکالیں جو ان کی ساخت سمجھتی ہو — پہلے دونوں JSON فائلوں کی keys ترتیب دیں اور پھر نتائج کا موازنہ کریں، یا daff استعمال کریں، جو CSV کا روز اور کالمز کی صورت میں diff نکالتا ہے اور بتائے گا کہ ایک کالم کی جگہ بدلی، نہ کہ ہر لائن بدل گئی۔

دو فولڈرز، یا کسی ریپوزٹری کی تاریخ کے دو مقامات، git کا سوال ہیں، اس صفحے کا نہیں۔ اور جس تحریر کے پیراگراف دوبارہ ریپ کیے گئے ہوں، اس کے لیے لائن پر مبنی ویو بالکل غلط پیمانہ ہے — git diff --word-diff لائن بریکس کی جگہ کو نظر انداز کرتا ہے اور صرف وہ الفاظ دکھاتا ہے جو بدلے، جو وہی موازنہ ہے جو آپ اصل میں چاہتے تھے جب کسی دستاویز کو ری فلو کیا گیا ہو۔

اکثر پوچھے جانے والے سوالات

کیا میری دستاویزات کہیں محفوظ کی جاتی ہیں؟

نہیں۔ کچھ بھی محفوظ نہیں کیا جاتا اور کوئی ریکوئسٹ نہیں بھیجی جاتی، اور یہ نیٹ ورک بند ہونے پر بھی کام کرتا رہتا ہے۔ ٹیکسٹ کے لیے یہ جتنا لگتا ہے اس سے زیادہ اہم ہے: لوگ آن لائن ٹول میں جو پیسٹ کرتے ہیں وہ غیر شائع شدہ تحریریں، قانونی مسودے، طلبہ کا کام اور اندرونی دستاویزات ہوتی ہیں۔ کسی معاہدے یا مسودے کے دو ورژنز کا موازنہ کرتے وقت، اصل بات یہی ہے۔

یہ لائن بہ لائن موازنے سے بہتر کیوں ہے؟

کیونکہ لائن بہ لائن موازنہ کسی بھی چیز کے ہلتے ہی ٹوٹ جاتا ہے۔ فائل کے شروع میں ایک لائن شامل کریں تو اس کے نیچے کی ہر لائن اب دوسری قطار پر ہے، اس لیے سادہ موازنہ پوری دستاویز کو تبدیل شدہ بتاتا ہے — جو کسی کام کا نہیں۔ یہ Myers کا الگورتھم استعمال کرتا ہے، جو git diff اور diff(1) کے پیچھے ہے، اور وہ سب سے چھوٹا مجموعہ ڈھونڈتا ہے جس میں اضافے اور حذف ایک تحریر کو دوسری میں بدل دیں۔ شروع میں ایک لائن شامل کریں، اور یہ ایک شامل شدہ لائن بتاتا ہے۔

کیا یہ دکھا سکتا ہے کہ کون سے الفاظ بدلے، صرف لائنیں نہیں؟

جی ہاں۔ جب کوئی لائن شامل یا ہٹائی جانے کے بجائے ایڈٹ کی گئی ہو، تو اس کا لفظ بہ لفظ دوبارہ موازنہ کیا جاتا ہے اور صرف وہی الفاظ نمایاں ہوتے ہیں جو واقعی بدلے۔ لمبے پیراگراف میں جہاں کسی نے تین الفاظ بدلے، آپ کو تین الفاظ نظر آتے ہیں، رنگ کی دیوار نہیں۔

“نظر انداز کریں” والے آپشنز کیا کرتے ہیں؟

یہ بدلتے ہیں کہ کون سی لائن ایک جیسی مانی جائے۔ بڑے چھوٹے حروف، اسپیسنگ یا خالی لائنوں کو نظر انداز کرنا ری فارمیٹ شدہ کوڈ یا دوبارہ پیسٹ کیے گئے ٹیکسٹ کا موازنہ کرتے وقت مفید ہے۔ ایک اہم تفصیل: اگر دو تحریریں صرف اس لیے میل کھاتی ہیں کہ کچھ نظر انداز کیا جا رہا ہے، تو صفحہ انہیں ایک جیسا بتانے کے بجائے صاف صاف یہ کہتا ہے — “ایک جیسے” اور “بڑے چھوٹے حروف نظر انداز کرنے پر ایک جیسے” دو الگ حقیقتیں ہیں، اور انہیں گڈمڈ کرنے سے ہی کوئی ایسی فائل آگے بھیج دیتا ہے جسے وہ غیر تبدیل شدہ سمجھ رہا تھا۔

کیا میں نتیجہ patch کے طور پر لے سکتا ہوں؟

جی ہاں — موازنے کو unified diff کے طور پر کاپی کیا جا سکتا ہے، وہی فارمیٹ جو git اور ای میل patches استعمال کرتے ہیں، ہر تبدیلی کے ارد گرد چند لائنوں کے سیاق کے ساتھ۔ بگ رپورٹ میں پیسٹ کرنے کے لیے یہی فارمیٹ ہے۔

کیا سائز کی کوئی حد ہے؟

کوئی مقررہ سائز کی حد نہیں، بلکہ دستیاب میموری۔ دو لمبی دستاویزات کا موازنہ تیز ہوتا ہے کیونکہ اصل کام شروع ہونے سے پہلے ایک جیسا شروع اور آخر میچ کر کے چھوڑ دیا جاتا ہے۔ جو دو تحریریں ہزاروں الگ الگ جگہوں پر مختلف ہوں، انہیں ٹیب جمانے کے بجائے وضاحت کے ساتھ رد کر دیا جائے گا — اتنا بڑا diff ویسے بھی پڑھا نہیں جا سکتا۔

کیا یہ Word یا PDF فائلوں کا موازنہ کر سکتا ہے؟

براہِ راست نہیں۔ پہلے انہیں ٹیکسٹ میں تبدیل کریں — ہمارے [PDF سے ٹیکسٹ](pdf-to-text) اور [DOCX سے TXT](docx-to-txt) ٹولز بالکل یہی کرتے ہیں — اور نتائج یہاں پیسٹ کریں۔

جاننا مفید ہے: موازنہ 8,000 فرقوں تک محدود ہے۔ اس سے آگے الگورتھم کا خرچ اتنی تیزی سے بڑھتا ہے کہ ٹیب جم سکتا ہے، اس لیے صفحہ اٹکنے کے بجائے رک جاتا ہے اور بتا دیتا ہے — دو بالکل غیر متعلق دستاویزات جلد ہی اس حد تک پہنچ جاتی ہیں۔ ایک ہی فائل کے دو ورژنز کا موازنہ تقریباً کبھی نہیں پہنچتا۔

یہ ٹول اپنی ویب سائٹ پر لگائیں

کسی بھی بلاگ، کلاس پیج یا ہیلپ آرٹیکل کے لیے مفت۔ ایک اسنیپٹ پیسٹ کریں اور آپ کے وزیٹرز اسے سیدھا آپ کے صفحے پر استعمال کر سکیں گے۔