كيف يمكنني تصدير تاريخ البازار لمجلد فرعي

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

  •  09-06-2019
  •  | 
  •  

سؤال

أقوم بترميز إطار عمل مع مشروع يستخدم هذا الإطار.المشروع عبارة عن مستودع بازار، مع إطار العمل في مجلد فرعي أسفل المشروع.

أريد أن أعطي إطار العمل مستودع بازار خاصًا به.كيف فعلتها؟

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

المحلول

يمكنك استخدام أمر الانقسام:

bzr split sub_folder

يؤدي هذا إلى إنشاء شجرة مستقلة في المجلد الفرعي، والتي يمكنك الآن تصديرها والعمل عليها بشكل منفصل.

نصائح أخرى

استخدم البرنامج المساعد للاستيراد السريع (http://bazaar-vcs.org/BzrFastImport):

1) قم بتصدير كل سجلك إلى الدفق:

bzr fast-export BRANCH > full-history.fi

2) قم بتصفية السجل لإنتاج تيار جديد:

bzr fast-import-filter -i subfolder full-history.fi > subfolder.fi

3) إعادة إنشاء فرع جديد بمجلد فرعي فقط:

bzr init-repo .
bzr fast-import subfolder.fi

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

سوف ينتهي بك الأمر بشيء مثل:

branch project:
.. other files.. 
framework/a.file
framework/b.file
framework/c.file

branch framework: 
a.file
b.file
c.file

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

لقد حاولت القيام بذلك باستخدام bzr Split، ولكن هذا لا يعمل كما أتوقع.

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

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

ومع ذلك، لا يزال هناك جانب سلبي وهو أن المستودع قام بتخزين سجل كل تلك الملفات "المحذوفة"، مما يعني أنه يشغل مساحة أكبر من اللازم (ويمكن أن يكون مشكلة تتعلق بالخصوصية إذا كنت لا تريد أن يتمكن الأشخاص من رؤية المراجعات الأقدم لتلك الدلائل "الأخرى").

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

افعل أ

bzr init .
bzr add .
bzr commit

في دليل الإطار.

ثم يمكنك التفرع والدمج في هذا الدليل فقط.

سوف يتجاهل البازار الأعلى هذا الدليل حتى تقوم بالانضمام.

يفهم بازار عندما تفعل أشياء مثل

bzr branch . mycopy
bzr branch . myothercopy

لن تقوم المجلدات الحالية .bzr بتتبع تغييرات هذه المجلدات الفرعية.

إنه يوفر عليك من محاولة العثور على مكان لوضع فرع.

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