سؤال

أنا أدير svn repo لمشروع لم يتم استيراد المصدر فيه بدليل واحد عالي المستوى.ونتيجة لذلك، أصبح هناك حوالي 15 "مشروعًا" منفصلاً بدلاً من مشروع واحد.كيف يمكنني دمجها في مجلد واحد مع الحفاظ على سجل التغيير؟

*تَلمِيح:حركة svn لا تعمل في هذه الحالة.

تحرير] يصيح ، دبي من الجمع بين مستودعات SVN المتعددة في مستودع واحد

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

المحلول

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

إذا كنت تهتم الاحتفاظ التاريخ على حد سواء، ثم يمكنك استخدام "تفريغ svnadmin" لتفريغ مستودع واحد، و "تحميل svnadmin" لتحميله في مستودع آخر. فإن أرقام المراجعة تكون خارج، ولكن عليك لا تزال لديها التاريخ.

ونسخ من هنا: http://subversion.tigris.org/faq.html # متعددة دمج

نصائح أخرى

وربما كنت أعمل كثيرا مع المطرقة التحكم في الإصدار توزيعها وكل ما أرى في هذه المرحلة يتم توزيعها الأظافر. ولكن لدي مرة أخرى أقول إن هذا هو على الارجح وظيفة لDVCSs.

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

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

يمكنك إنشاء مشروع جديد عالي المستوى يستخدم svn:externals للإشارة إلى كافة المشاريع الأخرى ووضعها في الدلائل الفرعية المناسبة.

  • سيحتاج المطورون فقط إلى التحقق من مشروعك الجديد عالي المستوى (سيتبع svn تلقائيًا svn:externals ويسحب الآخرين)
  • سيتم الاحتفاظ بسجل الإصدار الكامل، وسيتم تطبيق التغييرات الجديدة تلقائيًا على المشروع الفرعي ذي الصلة
  • سيستغرق التنفيذ حوالي 5 دقائق (إنشاء مشروع المستوى الأعلى الجديد وتشغيله svn propedit svn:externals top_dir).
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top