رسالة خطأ النطاقات المفقودة عند إعادة دمج فرع في صندوق الاتصال في Subversion 1.5

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

سؤال

أحاول إعادة دمج فرع التطوير في صندوق السيارة الموجود في مستودع Subversion 1.5 الخاص بي.لقد قمت بدمج كافة التغييرات من الجذع إلى فرع التطوير قبل هذه العملية.الآن عندما أحاول إعادة دمج التغييرات من الفرع أحصل على رسالة الخطأ التالية:

Command: Reintegrate merge https://dev/svn/branches/devel into C:\trunk  
Error: Reintegrate can only be used if revisions 280 through 325 were previously   
Error: merged from https://dev/svn/trunk to the reintegrate   
Error: source, but this is not the case:  
Error:   branches/devel/images/test  
Error:     Missing ranges: /trunk/images/test:280-324  
...

ثم تستمر الرسالة في الشكوى من بعض المجلدات في مشروعي.ولكن عندما أحاول دمج التغييرات من الجذع إلى فرع التطوير مرة أخرى، يخبرني TortoiseSVN أنه لا يوجد شيء لدمجه (حيث قمت بالفعل بدمج جميع التغييرات من قبل):

Command: Merging revisions 1-HEAD of https://dev/svn/trunk into C:\devel, respecting ancestry  
Completed: C:\devel  

أحاول اتباع التعليمات من هنا: http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html, ، ولكن لا يوجد شيء عن حل مثل هذه المشكلة.

أيه أفكار؟ربما ينبغي عليّ فقط حذف صندوق السيارة ثم عمل نسخة من فرعي؟لكنني لست متأكدًا حقًا مما إذا كان آمنًا.

أنظر أيضا

svn merge with --reintegrate يشكو من النطاقات المفقودة ولكن معلومات الدمج تبدو صحيحة

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

المحلول

يجب عليك دمج المراجعات R280 إلى R324 من Trunk إلى فرعك أولاً.

يبدو أنك قمت بالفعل بدمج R325 في فرعك ، ومع ذلك -يجب أن تحصل على الاندماج الكل انحراف إلى آخر مراجعة لك. يجب ألا يكون هناك فجوة. إذن هنا قليلاً:

           +----------------------> /branches/devel
          /                    /   \<--merge not working!
 --------/-------+--+---+-----+---------> trunk
         |       \  |  /      |
        280       \ V /      325
                    V
                  missing sync merges from trunk to branch

أعتقد أن هذا هو بنية فرعك ، لذلك تحتاج إلى مزامنة جميع التغييرات من الجذع إلى فرعك. لقد قمت بدمج R325 فقط ، لذا فقط دمج R280-R324 وبعد القيام بذلك ، يجب أن تكون بخير لاستخدامه-الاندماج

نصائح أخرى

لقد ناضلنا مع هذه القضية لبضعة أسابيع وأخيراً تم حلها.

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

كان الحل هو إضافة النطاقات المفقودة إلى خاصية SVN: MergeInfo للملف أو المجلد في فرعنا.

لكل "نطاقات مفقودة: المسار: Revision_Range" في الرسالة التي تلقيتها:

  • تحرير SVN: خاصية MergeInfo في ملف/مجلد المذكورة في الفرع المدمج
  • قم بإلحاق ما يلي: سلسلة في نهاية قيمة الخاصية (على سبيل المثال/trunk/الصور/الاختبار: 280-324)
  • احفظ خاصية SVN

ارتكب كل التغييرات وإعادة الاندماج مرة أخرى

لقد واجهت هذه المشكلة ، وكان سببها في النهاية خصائص SVN الخاطئة ضد مجلد في فرعتي.

كان الحل سهلاً - لقد اندمجت من الجذع إلى فرعتي باستخدام رقم المراجعة المحدد الذي تم الإبلاغ عنه على سبيل المثال

enter image description here

ثم تحديد لتسجيل الدمج على سبيل المثال فقط

enter image description here

جعل هذا الإجراء بشكل صحيح فرعتي متواصلة مع Trunk ، وقد عملت إعادة دمج الفرع اللاحق إلى Trunk بنجاح ، دون رسالة خطأ في النطاقات المفقودة.

تجنبت هذه التقنية أي تحرير يدوي لأي SVN: خصائص MergeInfo مقابل أي ملفات/مجلدات.

توقفت عن الحصول على هذه المشكلات عندما بدأت في استخدام خيار -r إلى أمر SVN Merge ولم أحاول القيام بالاندماج حتى بعد أن اندمجت بدونه. أنا أستخدم SVN 1.6.1.

هذا ما أفعله:
1. عند الاندماج من فرع إلى جذع أو جذع إلى فرع ، أستخدم خيار -r مثل هذا:

 cd branchWorkArea/topDir
 svn merge -r<branchPoint>:HEAD [otheroptions] svn://svn/project/trunk/topDir
  1. عندما قمت بحل أي تعارضات واختبار الكود الخاص بي ، ألتزم بالاندماج في الفرع ثم دمج الفرع على الجذع باستخدام نفس الخيارات الأساسية (خاصة -RbranchPoint: Head)

  2. عندما يتم اختبار الجذع وارتكابه ، أستخدم خيار -الاندماج في الإغلاق. تأكد من استخدام خيار -rbranchPoint: رئيس عليه أيضًا.

للحصول على خيارات أخرى ، أستخدم دائمًا

-تعمق اللانهاية (الافتراضية إلى اللانهاية في 1.6.2 ولكن ليس من قبل)
-x -b -x -w -ignore -eol -style

ربما ، لقد كنت محظوظًا ولكن يبدو أن الأمور بالتأكيد تعمل بشكل أفضل.

للعثور على نقطة الفرع لفرع ما ، يمكنك القيام بسجل SVN-إيقاف التشغيل ، ثم انظر إلى إلى آخر عمليات إعادة التنفيذ-ستكون نسخة SVN التي أنشأت الفرع.

للقيام بذلك على Linux ، أفعل شيئًا كهذا:

SVN LOG-STOP-ON-COPY SVN: // SVN/Project/Trunk/Topdir |
جريب '^r' | ذيل -1 | sed -e 's/^r // 1' -e' s/.*// g '

هذا يجب أن يطبع رقم المراجعة للنقطة الفرعية.

حظا طيبا وفقك الله

هذه ليست إجابة بل سؤال توضيحي.

رسالة الخطأ الخاصة بي هي:

Reintegrate can only be used if revisions 2669 through 3403 were previously merged from
https://../schemas
to the integrate source, but this is not the case:
trunk/schemas:
Missing ranges:
../schemas:2673,2682,2720,2736,2878,2960,3003,3057

لقد قمت بدمج المراجعات باستخدام الحل الذي يوفره Greg Trevellick ، ​​ولا يزال يحصل على رسالة الخطأ.

عندما أفتح خاصية svn:mergeinfo بعد إجابة @pako في مجلد المخططات، يبدو المحتوى كما يلي

/branches/repos_develop_os/trunk_branch-os/schemas:3329
/trunk/schemas:2669-2673,2682,2720,2736,2878,2960,3003,3057

لست متأكدًا من كيفية تعديل هذا المحتوى.يبدو أن النطاقات المفقودة كلها موجودة.

لقد واجهت هذه المشكلة وما نجح بالنسبة لي هو أولاً وقبل كل شيء ، مزامنة الفرع مع الجذع ، بحيث يمكن للفرع الحصول على آخر التحديثات من الجذع. بعد ذلك ، حاولت إعادة دمج الفرع إلى الجذع وعملت بشكل جيد.

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