القيام بثلاث اتجاه مع GIT و KDIFF3
سؤال
هل من الممكن ضبط git حتى أتمكن من استخدام المقارنة ثلاثية في KDIFF3؟
لديّ فرعان مختلفان تمامًا عن التحديق التلقائي لهما ، علي ببساطة التحقق من كل نقطة دمج وأعتقد أن أفضل طريقة هي التحقق من الفرع الذي أريد التغييرات من الفرع الآخر وأقول
git difftool HEAD_OF_OTHER_BRANCH -- .
ثم حدد ملف دمج في KDIFF3. بعد مرور الملفات على الملفات.
لقد قمت بإعداد Merge.ConflictStyle و Diff.ConflictStyle إلى Diff3 لكن KDIFF3 لا يزال يبدأ مع فرق في اتجاهين. هل هذا ممكن؟ أظن أنه إذا كان GIT يرسل أيضًا تجزئة الأجداد المشتركة كمعلمة ، فهذا ممكن ، لكن هل ذلك؟
هنالك نقاش حول كيفية القيام بذلك مع SVN و BC3 ، لكنني لم أجد أي شيء لـ GIT و KDIFF3.
المحلول
يبدو أن GIT Diff لا يفعل سوى فرق ثنائية الاتجاه (وهو أمر منطقي لإنشاء التصحيح وما إلى ذلك) إلا في حالة دمج ، يجب عليك القيام بدمج لذلك. كنت في موقف مماثل في ذلك اليوم وانتهى بي الأمر إلى Mergin باستخدام ours
إستراتيجية. هذا نجح ولكن لم يكن مثاليًا. ربما نحتاج إلى استراتيجية دمج "غير مرنة" لا تحاول حل أي تعارضات. قد تكون قادرًا على محاكاة ملفات .git/merge_* وتعيين جميع الملفات على أنها متضاربة.
وإلا فإن الحل الواضح هو الخروج 3 دليل مختلف وتشغيل KDIFF3 ، ولكن أعتقد أنك تبحث عن حل أكثر أناقة
نصائح أخرى
قم بتشغيل هذا على سطر الأوامر:
git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary
ثم ، عند حل النزاعات ، عليك فقط القيام به:
git mergetool --tool=kdiff3