باستخدام TortoiseSVN كيف أقوم بدمج التغييرات من الجذع إلى فرع والعكس؟


Answers

لم أتمكن من متابعة الإجابات الأخرى بشكل صحيح ، وهنا المزيد من دليل الدمى ...

يمكنك القيام بذلك في كلتا الحالتين للذهاب trunk -> branch أو branch -> trunk . أنا دائما أولا trunk -> branch إصلاح أي صراعات هناك ثم دمج branch -> trunk .

دمج الجذع في فرع / العلامة

  1. الخروج فرع / العلامة
  2. انقر بزر الفأرة الأيمن على جذر الفرع السلحفاة SVN | دمج ...
  3. دمج النوع: دمج مجموعة من المراجعات | انقر فوق التالي'
  4. دمج نطاق المراجعة: حدد عنوان URL الخاص بدليل صندوق البريد الذي قمت بنسخه إلى الفرع / العلامة. أدخل المراجعات لدمج أو اترك الحقل فارغًا لدمج جميع المراجعات | انقر فوق التالي'
  5. خيارات الدمج: لقد تركت هذه مجرد افتراضية | انقر فوق "دمج"
  6. سيؤدي هذا إلى دمج المراجعات في الفرع / العلامة التي تم سحبها
  7. ثم ارتكب التغييرات المدمجة للفرع / العلامة
Question

لقد كنت أقرأ على المتفرعة / دمج مع Subversion 1.5 باستخدام نسخة تحكم ممتازة وخالية مع كتاب Subversion . أعتقد أنني أفهم كيفية استخدام عميل سطر الأوامر Subversion لتنفيذ الإجراءات التي أحتاج إليها كثيرًا ، وهي:

تحديث فرع مع التغييرات من الجذع

من تشغيل دليل العمل الخاص بالفرع:

svn دمج http://svn.myurl.com/proj/trunk

دمج فرع في صندوق السيارة

من تشغيل دليل العمل في صندوق السيارة:

svn merge --reintegrate http://svn.myurl.com/proj/branches/mybranch

ومع ذلك ، نحن نستخدم TortoiseSVN 1.5 كواجهتنا للتخريب. أود أن أعرف أفضل الطرق لأداء هذه العمليات مع TortoiseSVN. يوفر مربع الحوار الجديد ثلاثة خيارات مختلفة في القائمة الرئيسية.

  1. دمج مجموعة من المراجعات
  2. إعادة دمج فرع
  3. دمج اثنين من الأشجار المختلفة

من ما يمكنني جمعه ، ينفذ TortoiseSVN دائمًا svn مع الصيغة التالية.

svn merge [--dry-run] --force From_URL @ revN To_URL @ revM PATH

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

أسئلتي هي:

  1. كيف يمكنني استخدام TortoiseSVN 1.5 لدمج التغييرات من الجذع إلى فرع؟
  2. كيف يمكنني استخدام TortoiseSVN 1.5 لدمج الفرع مع الجذع ، مع وبدون طريقة إعادة الاندماج؟
  3. أي من الخيارات المذكورة أعلاه يجب أن أستخدمها لكل منها ، ولماذا؟

تصحيح

من خلال اختبار "الجفاف المدى" لقد وجدت أن عملية سطر التخريب

svn دمج http://svn.myurl.com/proj/trunk

يماثل الخيار رقم 1 (دمج مجموعة من المراجعات) في TortoiseSVN ، طالما أترك نطاق المراجعة فارغًا.




ألق نظرة على svnmerge.py . إنه سطر الأوامر ، لا يمكن التذرع به من قبل TortoiseSVN ، لكنه أكثر قوة. من FAQ :

سيسمح لك التخريب التقليدي بدمج التغييرات ، ولكنه لا "يتذكر" ما قمت بدمجه بالفعل. كما أنه لا يوفر طريقة ملائمة لاستبعاد مجموعة التغيير من أن يتم دمجها. يقوم svnmerge.py بأتمتة بعض الأعمال وتبسيطها. ينشئ Svnmerge أيضًا رسالة التزام مع رسائل السجل من كل الأشياء التي قام بدمجها.