diff3

diff3 هي أداة مساعدة في نظام يونكس لمقارنة ثلاثة ملفات وعرض أي اختلافات بينها. كما يمكن لـ diff3 دمج الملفات، وتنفيذ عملية دمج ثلاثية .

التاريخ والتطبيقات

diff3ظهرت هذه الميزة لأول مرة في الإصدار السابع من نظام يونكس عام 1979. وقد وُجد إصدار مشابه جدًا في توزيعة برمجيات بيركلي (BSD) وتم تضمينه في نظام أوبن بي إس دي، وربما في نظام سولاريس أيضًا . [ 1 ] [ 2 ]

في معظم أنظمة يونكس الحديثة، حتى تلك المشتقة من بي إس دي مثل فري بي إس دي ونت بي إس دي، فإن أداة diff3 المتوفرة هي نسخة جنو الموجودة في diffutils (المعروفة سابقًا باسم أدوات جنو ). تتميز هذه النسخة بقدرتها على دمج الملفات تلقائيًا دون الاعتماد على أدوات أخرى ed. فهي تستدعي داخليًا أداة أخرى diffلإجراء المقارنة، ولكنها قادرة أيضًا على استخدام أي أداة متوافقة أخرى. [ 3 ]

يتوفر الأمر كحزمة منفصلة لنظام التشغيل مايكروسوفت ويندوز كجزء من مجموعة UnxUtils من منافذ Win32 الأصلية للأدوات المساعدة الشائعة الشبيهة بنظام GNU Unix. [ 4 ]

أصبح "Diff3" أيضًا اسمًا عامًا لخوارزمية الدمج الثلاثي، وتحديدًا تلك القائمة على التوفيق بين اختلافين مختلفين ناتجين عن المصدر الأول.

الاندماج من سلف مشترك

عندما يُجري شخصان تغييرات على نسختين من الملف نفسه، يُمكن لبرنامج diff3 إنتاج مُخرَج مُدمج يحتوي على مجموعتي التغييرات مع تحذيرات بشأن التعارضات. كما يُمكن لـ diff3 دمج ثلاث مجموعات أو أكثر من التغييرات في ملف واحد عن طريق دمج مجموعتين في كل مرة.

يُمكن لبرنامج diff3 دمج التغييرات من نسختين مُعدّلتين في نسخة سابقة مشتركة. يُمكّن هذا المستخدمين من دمج مجموعات التغييرات التي تُمثلها الملفان الأحدث. يُمكن تفعيل هذه الميزة باستخدام أمر مثل diff3 -m mine older yours:

يشبه هذا طرح الملف olderمن الملف yoursوإضافة النتيجة إلى الملف mine، أو دمج mineالتغييرات التي ستتحول olderإلى yours. يكون هذا الدمج مُحددًا جيدًا طالما أن mineو olderمتطابقان في نطاق كل تغيير من هذا القبيل. لا يصح هذا عندما تختلف جميع ملفات الإدخال الثلاثة أو عندما olderيختلف فقط؛ وهذا يُعد تعارضًا. عندما تختلف جميع ملفات الإدخال الثلاثة، يكون التعارض تداخلًا.

يحتوي برنامج diff3 على عدة طرق للتعامل مع التداخلات والتعارضات. يمكنه حذف التداخلات أو التعارضات، أو تحديد التداخلات فقط، أو تمييز التعارضات بخطوط <<<<<<<خاصة >>>>>>>.

يمكن لبرنامج diff3 إخراج نتائج الدمج كنص برمجي ed يُمكن تطبيقه على الملف الأول للحصول على الناتج المدمج. مع ذلك، فإن توليد الناتج المدمج مباشرةً يتجاوز بعض مشاكل ed.

انظر أيضاً

مراجع

  1. دليل الأوامر العامة لنظام OpenBSDdiff3(1)  
  2. "diff3 - صفحات الدليل، القسم 1: أوامر المستخدم" . وثائق Solaris 11.3 .
  3. دليل أوامر لينكس العامة من ManKier.comdiff3(1)  
  4. "منافذ Win32 أصلية لبعض أدوات GNU" . unxutils.sourceforge.net .