نکات کلیدی
- 01سه حالت diff — خط، کلمه، و کاراکتر — به شما اجازه میدهند سطح دانهبندی را انتخاب کنید که با محتوای شما مطابقت دارد.
- 02toggle نادیدهگرفتن حروف بزرگ و نادیدهگرفتن فاصلههای سفید سروصدا در قالببندی را پالایش میکنند تا فقط تغییرات معنیداری ببینید.
- 03نتیجه به عنوان diff متحدشده قابل کپی با پیشوند +/- خروجی شده است، برای بررسی کد یا گزارش اشکال آماده است.
- 04تمام diffing به صورت جانبی کلاینت با استفاده از الگوریتم طولانیترین دنباله مشترک اتفاق میافتد — محتوا هرگز صفحه را ترک نمیکند.
وقتی به نمایشدهنده Diff نیاز دارید
کنترل منبع نشان میدهد فایل در طول زمان چگونه تغییر کرده است، اما گاهی اوقات باید دو بلاب متن دلخواه را مقایسه کنید که هرگز مخزن را لمس نکردند: دو پاسخ API، قبل/بعد از یک ویرایش سریع کپی، فایل پیکربندی از دو محیط، یا دو نسخه از بند قرارداد. چسباندن هر دو در نمایشدهنده diff سریعتر از git stash است و خواندن آن بسیار راحتتر است.
نمایشدهنده diff از Handytool از الگوریتم طولانیترین دنباله مشترک بر روی کلاینت استفاده میکند، بنابراین مقایسههای فوری برای ورودیهای معمول هستند. برای کد، JSON، markdown و نثر ساده به طور یکسان کار میکند — و زیرا هیچ چیزی مرورگر را ترک نمیکند، میتوانید به طور ایمن محتوای داخلی یا محرمانه را بچسبانید.
نحوه مقایسه دو متن
- 01
متن اصلی را در پنل چپ بچسبانید
این خطمبنای شما است — نسخه قدیمیتر، فایل منبع، یا هر چیزی که از آن مقایسه میکنید.
- 02
متن ویراستهشده را در پنل راست بچسبانید
نسخه جدیدتر، نسخه ویراستهشده، یا هدف را اضافه کنید که میخواهید بر اساس آن مقایسه کنید.
- 03
یک حالت diff را انتخاب کنید
خط را انتخاب کنید (بهترین برای کد و پیکربندی)، کلمه (بهترین برای ویرایش نثر)، یا کاراکتر (بهترین برای گرفتن غلطانگاری و تغییرات نقطهگذاری).
- 04
در صورت لزوم نادیدهگرفتن حروف بزرگ یا نادیدهگرفتن فاصلههای سفید را تغییر دهید
این فیلترها تغییراتی را پنهان میکنند که معنی را تحتتأثیر قرار نمیدهند — هنگام مقایسه JSON قالببندیشده مجدد یا نسخهای کاغذی کمتغییر مفید است.
- 05
diff متحدشده را کپی کنید
از دکمه کپی برای گرفتن خروجی دارای پیشوند +/- استفاده کنید و آن را در نظر بدهی بررسی کد، تیکت یا تغییرات بچسبانید.
ایمن برای محتوای محرمانه
diff کاملاً در مرورگر شما اجرا میشود. هیچ متنی به سرویدهندگان Handytool ارسال نمیشود در هیچ نقطه — نه هنگام چسباندن، نه هنگام تغییر حالتها، نه هنگام کپی کردن نتیجه. این بدان معنی است که میتوانید به طور ایمن کد منبع اختصاصی، اسناد داخلی، پیشنویس حقوقی یا هر محتوای حساس دیگری را مقایسه کنید.
برای ورودیهای بسیار بزرگ — دهها هزار خط — الگوریتم LCS کند میشود زیرا پیچیدگی آن با هر دو اندازه ورودی رشد میکند. اگر به آن رسیدید، نادیدهگرفتن فاصلههای سفید را فعال کنید تا شمارش توکن را کاهش دهید، یا به حالت خط تغییر دهید که سریعترین از سه است.
پرسشهای متداول نمایشدهنده Diff
آیا این نمایشدهنده diff متن من را به سرویدهنده ارسال میکند؟
نه. diff به طور کامل در مرورگر شما با استفاده از JavaScript محاسبه میشود. برای کد اختصاصی، اسناد داخلی و محتوای محرمانه ایمن است.
تفاوت بین diff خط، کلمه و کاراکتر چیست؟
diff خط هر خط را به عنوان واحد مدلسازی میکند — برای کد ایدهآل. diff کلمه بر روی فاصلههای سفید تقسیم میشود — برای ویرایشهای نثر عالی. diff کاراکتر بهترین دانه است و تکحرف غلط یا تغییرات نقطهگذاری را سطحدار میکند.
چرا برخی از خطوط به عنوان اضافه و حذف شده علامتگذاری میشوند؟
وقتی خطی در وسط تغییر میکند، الگوریتم آن را به عنوان حذف خط قدیمی و اضافه خط جدید نشان میدهد. برای دیدن دقیق آنچه تغییر کرد درون خط، به حالت کلمه یا کاراکتر تغییر دهید.
ورودیهای چقدر بزرگ میتواند باشند؟
بیشتر مقایسههای کد و نثر روزمره فوری هستند. ورودیهای بسیار بزرگ کند میشود زیرا الگوریتم LCS با هر دو اندازه ورودی رشد میکند. برای فایلهای بسیار بزرگ، حالت خط را ترجیح دهید و نادیدهگرفتن فاصلههای سفید را فعال کنید تا سریع بماند.
آیا میتوانم کد را در زبانهای برنامهریزی مختلف مقایسه کنم؟
بله — نمایشدهنده diff بیطرف است. این متن خام را مقایسه میکند، بنابراین برای JavaScript، Python، JSON، YAML، یا نثر ساده به طور یکسان کار میکند.