سؤال

افترض أن الملفات الخاصة بك وملفاتك من أحفاد القديم.

file_mine =

abc
def
ghi

file_old =

abc
jkl
ghi

file_yours =

abc
def
ghi

يأمر diff3 -m MIND OLD YOURS يعطي:

abc
<<<<<<< OLD
jkl
=======
def
>>>>>>> YOURS
ghi

لا يمكن لـ DIFF3 حل هذا المنجم وقمك بإجراء تغييرات متطابقة.

لماذا ا؟ وهل هناك طريقة لحل هذه المشكلة؟

دغدغ عقلك بهذا:

diff OLD MIND و diff OLD YOURS لديهم أشكال متطابقة في إنتاجها.

2c2
< jkl
---
> def

هل يجب ألا "الإلغاء" خلال الاندماج ثلاثي الاتجاه؟

هل كانت مفيدة؟

المحلول

ماذا كنت تتوقع أن يكون؟

كما مقالة تصف الأداة المساعدة Diff3 يقول:

... هذا (دمج) فشل في أن يكون صحيحا عندما تختلف جميع ملفات الإدخال الثلاثة أو عندما يختلف كبار السن فقط; ؛ نسمي هذا أ نزاع. عندما تختلف جميع ملفات الإدخال الثلاثة ، نسمي الصراع تداخل

لذلك ، يتم التعامل مع الحالة التي وصفتها على أنها صراع. 'لما ذلك؟' ربما تسال. بسبب خوارزمية DIFF3. الوصف يمكنك العثور عليه في نفس الصفحة:

يمكنك التفكير في هذا (الدمج) كطرح اكبر سنا من لك وإضافة النتيجة إلى مِلكِي, ، أو كما تم دمج التغييرات التي ستتحول إلى أقصى درجة من العمر

لا يمكن حل الاختلافات بشكل صحيح لأنه لا يحتوي على سياق مناسب للتغييرات التي يتم إجراؤها.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top