مقایسهگر متن (Diff Checker)
دو متن یا قطعهکد را خط به خط مقایسه کنید. خطوط اضافهشده، حذفشده و تغییریافته تا سطح دقیق کلمات متفاوت برجسته میشوند.
اجرا در مرورگر شمابدون ثبتنامبدون آپلود
نحوهٔ استفاده از مقایسهگر متن (Diff)
- متن اصلی را در سمت راست و متن تغییریافته را در سمت چپ جایگذاری کنید یا دو فایل باز کنید.
- مقایسه همزمان با تایپ بهروز میشود. نمای کنار هم یا یکپارچه را انتخاب کنید.
- نادیده گرفتن فاصلهها، نادیده گرفتن حروف بزرگ/کوچک یا نادیده گرفتن خطوط خالی را فعال کنید تا تغییرات بیاهمیت مانند تورفتگی مجدد پنهان شوند.
- با پنهان کردن موارد بدون تغییر روی تغییرات تمرکز کنید؛ سه خط زمینه اطراف هر تغییر باقی میماند.
- روی کپی بهصورت patch یا دانلود .diff کلیک کنید تا یک unified diff استاندارد بگیرید که با
git applyیاpatchقابل اعمال است.
این مقایسهگر چگونه کار میکند
ابزار هر دو ورودی را به خطها تقسیم میکند و الگوریتم تفاوت Myers را اجرا میکند؛ همان الگوریتم O(ND) که git diff و GNU diff استفاده میکنند. این الگوریتم کوتاهترین دنبالهٔ درجها و حذفها را پیدا میکند که متن اصلی را به متن تغییریافته تبدیل میکند، بنابراین نتیجه کمترین تعداد ممکن خط تغییریافته را نشان میدهد. خطوط یکسان ابتدا و انتها اول کنار گذاشته میشوند، که مقایسهٔ فایلهای هزارانخطی را تقریباً آنی میکند.
وقتی یک خط حذفشده و یک خط اضافهشده کنار هم قرار دارند، بهعنوان یک خط تغییریافته جفت میشوند و دوباره کلمه به کلمه مقایسه میشوند. کلماتی که واقعاً تغییر کردهاند برجستهسازی پررنگتری میگیرند، بنابراین یک متغیر تغییرنامیافته یا یک عدد ویرایششده در یک خط طولانی به چشم میآید.
نمای کنار هم در برابر یکپارچه
کنار هم متن اصلی را در سمت راست و نسخهٔ جدید را در سمت چپ، با شمارهٔ خط برای هر دو، قرار میدهد. این سادهترین نما برای بازبینی متن، فایلهای پیکربندی و تغییرات کوتاه کد است. نمای یکپارچه خطوط حذفشده (-) و اضافهشده (+) را در یک ستون درهم میآورد؛ قالبی که ابزارهای بازبینی کد و فایلهای patch استفاده میکنند.
قالب unified diff (patch)
patch خروجی از قالب diff -u پیروی میکند: یک هدر ---/+++ و سپس hunkهایی که با @@ -l,s +l,s @@ شروع میشوند، که در آن l شمارهٔ اولین خط و s تعداد خطوط hunk در هر فایل است. هر hunk سه خط زمینهٔ بدون تغییر دارد، بنابراین حتی اگر خطوط مجاور جابهجا شده باشند، با patch -p0 یا git apply قابل اعمال است.
چه زمانی از گزینههای نادیدهگیری استفاده کنیم
- نادیده گرفتن فاصلهها خطوطی را که فقط در فاصله یا تب فرق دارند برابر در نظر میگیرد. پس از تورفتگی مجدد کد یا تبدیل تب به فاصله از آن استفاده کنید.
- نادیده گرفتن حروف بزرگ/کوچک برای SQL، HTML و فایلهای لاگ که بزرگی حروف اهمیتی ندارد مفید است.
- نادیده گرفتن خطوط خالی خطوطی را که فقط برای فاصلهگذاری اضافه یا حذف شدهاند پنهان میکند.