مقارنة النصوص (Diff Checker)
قارن نصين أو مقتطفين من الكود سطرًا بسطر. تُميَّز الأسطر المضافة والمحذوفة والمعدَّلة، وصولًا إلى الكلمات المختلفة بالضبط.
يعمل في متصفحكبدون تسجيللا يُرفع شيء
طريقة استخدام مقارنة النصوص
- الصق النص الأصلي على اليمين والنص المعدَّل على اليسار، أو افتح ملفين.
- تتحدث المقارنة أثناء الكتابة. اختر عرض جنبًا إلى جنب أو موحَّد.
- فعّل تجاهل المسافات البيضاء أو تجاهل حالة الأحرف أو تجاهل الأسطر الفارغة لإخفاء التشويش مثل إعادة المسافات البادئة.
- استخدم إخفاء غير المتغير للتركيز على التغييرات مع ثلاثة أسطر من السياق حول كل منها.
- انقر نسخ كملف patch أو تنزيل .diff للحصول على unified diff قياسي يمكنك تطبيقه باستخدام
git applyأوpatch.
كيف تعمل أداة مقارنة النصوص هذه
تقسّم الأداة المدخلين إلى أسطر وتشغّل خوارزمية Myers للفروقات، وهي خوارزمية O(ND) نفسها التي يستخدمها git diff وdiff من GNU. تجد أقصر سلسلة من عمليات الإدراج والحذف تحوّل النص الأصلي إلى النص المعدَّل، لذا تُظهر النتيجة أقل عدد ممكن من الأسطر المتغيرة. تُتخطّى الأسطر المتطابقة في البداية والنهاية أولًا، مما يجعل مقارنة الملفات ذات آلاف الأسطر شبه فورية.
عندما يكون سطر محذوف وسطر مضاف متجاورين، يُقرنان كسطر معدَّل ويُقارنان مجددًا كلمة بكلمة. تحصل الكلمات التي تغيرت فعلًا على تمييز أقوى، فيبرز اسم متغير مُعاد تسميته أو رقم معدَّل داخل سطر طويل.
عرض جنبًا إلى جنب مقابل العرض الموحَّد
يضع عرض جنبًا إلى جنب النسخة الأصلية على اليمين والجديدة على اليسار، مع أرقام الأسطر لكليهما. وهو أسهل عرض لمراجعة النصوص وملفات الإعداد وتغييرات الكود القصيرة. أما العرض الموحَّد فيدمج الأسطر المحذوفة (-) والمضافة (+) في عمود واحد، وهي الصيغة التي تستخدمها أدوات مراجعة الكود وملفات patch.
صيغة unified diff (patch)
يتبع ملف patch المُصدَّر صيغة diff -u: ترويسة ---/+++، ثم كتل (hunks) تبدأ بـ @@ -l,s +l,s @@، حيث l هو رقم السطر الأول وs عدد أسطر الكتلة في كل ملف. تتضمن كل كتلة ثلاثة أسطر من السياق غير المتغير، لذا يمكن تطبيقها باستخدام patch -p0 أو git apply حتى لو تحركت الأسطر المجاورة.
متى تستخدم خيارات التجاهل
- تجاهل المسافات البيضاء يعتبر الأسطر متساوية إذا اختلفت فقط في المسافات أو علامات Tab. استخدمه بعد إعادة المسافات البادئة للكود أو التحويل من Tab إلى مسافات.
- تجاهل حالة الأحرف مفيد لملفات SQL وHTML والسجلات حيث لا تهم الأحرف الكبيرة.
- تجاهل الأسطر الفارغة يخفي الأسطر التي أُضيفت أو حُذفت كتباعد فقط.