[Svn] لماذا أحصل على صراعات أشجار في التخريب؟


Answers

أضافت Subversion 1.6 تعارضات شجرة لتغطية التعارضات على مستوى الدليل. مثال جيد هو عندما تقوم بحذف ملف محليًا ثم يحاول أحد التحديثات إحضار تغيير النص إلى هذا الملف. آخر هو عندما يكون لديك تخريب إعادة تسمية ملف تقوم بتحريره لأن هذا هو إجراء إضافة / حذف.

مدونة CollabNet's Subversion لديها مقالة رائعة عن تعارضات الشجرة .

Question

كان لدي فرع مميز من صندوق سيارتي وكان يدمج التغييرات من صندوق سيارتي إلى فرعي بشكل دوري وكل شيء كان يعمل بشكل جيد. ذهبت اليوم لدمج فرع العودة إلى الجذع وأي من الملفات التي تمت إضافتها إلى صندوق البريد الخاص بي بعد أن تم وضع علامة على إنشاء فرع بلدي "نزاع شجرة". هل هناك طريقة لتجنب هذا في المستقبل؟

لا أظن أنه يتم الإبلاغ عنها بشكل صحيح.




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

قمت بحل المشكلة عن طريق نقل الملف مرة أخرى ، والالتزام ، ثم دمج فرعي. ثم انتقلت الملف مرة أخرى بعد ذلك. :) يبدو أن تفعل الخدعة.




واجهت نفس المشكلة ، وتم حلها عن طريق إعادة الدمج باستخدام هذه الإرشادات . أساسا ، فإنه يستخدم SVN "دمج 2-URL" لتحديث trunk إلى الحالة الحالية للفرع الخاص بك ، دون عناء الكثير عن التاريخ والصراعات شجرة. أنقذني من إصلاح صراعات 114 شجرة.

لست متأكدا إذا كان يحافظ على التاريخ كما يرغب المرء ، ولكنه كان يستحق ذلك في حالتي.




يمكن أن يحدث هذا بسبب عدم استخدام عملاء الإصدار نفسه في كل مكان.

باستخدام عميل إصدار 1.5 وعميل إصدار 1.6 باتجاه نفس مستودع يمكن إنشاء هذا النوع من المشكلة. (لقد عضت نفسي.)




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

مثال:

دمج / SVN / مشروع / فروع / بعض فرع / مصادر ل / SVN / مشروع / الجذع ---> نزاع شجرة

دمج / SVN / مشروع / فروع / بعض فرع ل / SVN / المشروع / الجذع ---> موافق

قد يكون هذا خطأ غبيًا ، لكنه ليس دائمًا واضحًا لأنك تعتقد أنه شيء أكثر تعقيدًا.