التخريب: ما الذي لا يوجد "المسار المستهدف" عند الاندماج؟

StackOverflow https://stackoverflow.com/questions/212713

  •  03-07-2019
  •  | 
  •  

سؤال

باستخدام Subversion 1.5 لديّ فرع B الذي كان متفرعًا من الفرع A. بعد القيام بالعمل في كلا الفرعين ، أذهب إلى دمج التغييرات من A إلى B (باستخدام svn merge http://path/to/A في دليل العمل ب) واحصل svn: Target path does not exist. ماذا يعني هذا؟

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

المحلول

وهذا يعني أنه كان هناك تغيير في ملف في الفرع A الذي حاول التخريب الاندماج في الفرع B ، لكن الملف غير موجود في الفرع B ، لذلك ليس له مكان لدمج التغيير. فمثلا:

  • إنشاء الفرع ب
  • تغيير A/ReadMe
  • حذف b/readme
  • دمج A -> ب

الآن لا يمكن تطبيق التغيير في ReadMe في الفرع B ، لأنه تمت إزالة الملف هناك.

تحرير: هذا سيؤدي إلى أ صراع الأشجار في التخريب 1.6.

نصائح أخرى

كنت أتلقى هذا الخطأ مع SVN 1.5.4 حتى عندما لم تكن هناك تغييرات غير متوافقة. ترقية إلى 1.5.5 إصلاحها بالنسبة لي.

واجهت هذه المشكلة لأن الجذع والفرع كان له تاريخ غريب.

مثله:

              /---------\
trunk -------+---+       +---\
                  \-----------BOOM!

دمج الجذع -> الفرع لم ينجح.

دمج فرع -> الجذع عملت رغم ذلك.

              /---------\
trunk -------+---+       +---+-----
                  \---------/

ربما لأن الجذع كان لديه معلومات أفضل عن الجد الأخير الذي شاركوه.

في حالتي ، لم أكن مستعدًا للاندماج في Trunk ، لكنني تمكنت من إنشاء فرع جديد من الجذع ودمج فرعتي القديم هناك.

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