BzrSync هو أداة لمساعدة مطور باستخدام بازار على أجهزة متعددة. فإنه يحتفظ مستودعات وفروع مختارة متزامنة عبر الأجهزة تلقائيا. يستخدم البازار نفسها للتزامن (مع "سحب BZR")، وضمان الاتساق في جميع الأوقات.
تركيب
لتثبيت أحدث نسخة مستقرة من BzrSync، وذلك باستخدام النقطة:
PIP تثبيت bzrsync
أو باستخدام setuptools:
easy_install bzrsync
خلاف ذلك، إذا ليست نقطة ولا setuptools المتاحة، فمن الممكن لتحميل حزمة مصدر، استخراجها وتشغيل الأوامر setup.py المعتادة (على سبيل المثال من PyPI):
بيثون setup.py تثبيت
استعمال
دعونا نفترض أنك تعمل من ثلاث محطات مختلفة، وأسماء المضيفين هم ألفا وبيتا وجاما. كنت تريد أن تبقي مستودعات بازار الخاص والفروع متزامنة بين كافة العقد ثلاثة باستخدام BzrSync. ومن المفترض BzrSync ليتم استخدامها مع مستودعات المشتركة، لذلك إذا كنت لا تستخدم هذه، يجب عليك إعادة تنظيم فروع لاستخدام مستودعات المشتركة. انه من الاسهل للحفاظ على جميع مستودعات داخل نفس الدليل. في مثالنا مستودعات لدينا وسوف يقيم في ~ / BZR وسوف أسماءهم تنتهي في ".bzr". في كل مستودع مشترك، على أعلى مستوى يجب أن يكون هناك دليل لكل عقدة. في حالتنا ألفا وبيتا وجاما. على سبيل المثال، دعونا نتخيل لدينا مستودع المسمى "مشروع foo.bzr". نحن نعمل على ألفا، وخلقت جذع وفرع ميزة 1. سيكون لدينا:
~ / BZR / مشروع foo.bzr /
~ / BZR / مشروع foo.bzr / ألفا
~ / BZR / مشروع foo.bzr / ألفا / جذع
~ / BZR / مشروع foo.bzr / ألفا / ميزة 1
~ / BZR / مشروع foo.bzr / بيتا
~ / BZR / مشروع foo.bzr / غاما
دعونا نفترض ايضا لدينا مستودع local.bzr نحن لا نريد لمزامنة، في أي من الاتجاهين.
BzrSync يحتاج إلى ملف التكوين YAML، افتراضيا ~ / .bazaar / bzrsync.yaml، يعدد المستودعات والفروع لدينا. في هذا المثال سوف يكون محتوياته:
# العقد البعيدة
# (مجموعة يمكن أن تكون محددة مع منفذ اختياري كما HOST: PORT)
الجنود:
- ألفا
- بيتا
- غاما
# حيث توجد مستودعات المحدد مع مسار نسبي / نمط
الجذر: ~ / BZR
# * كل * المستودعات
مستودعات: "* .bzr"
# مستودعات محددة لاستبعاد من 'مستودعات'
استبعاد:
- local.bzr
# مستودعات للتصدير إلى العقد البعيدة
الصادرات: "* .bzr"
مستودعات محددة # استبعادها من التصدير
export_exclude:
- local.bzr
مستودعات # لمزامنة من أجهزة التحكم عن بعد
المزامنة: "* .bzr"
مستودعات محددة # استبعادها من المزامنة
sync_exclude:
- local.bzr
يمكننا استخدام بالضبط هذا الملف نفس التكوين على كافة العقد الثلاث.
سوف BzrSync تقم بإنشاء مستودعات مشتركة بالنسبة لك، حتى قبل المتابعة، أن تفعل ذلك الآن على كافة العقد، وتذكر لخلق أيضا الدلائل العقدة.
ثم إطلاق البرنامج الخفي BzrSync على كافة العقد:
ألفا $ bzrsync خدمة
$ بيتا bzrsync خدمة
غاما $ bzrsync خدمة
الآن دعونا متزامنة مشروع foo.bzr من ألفا لبيتا:
على & nbsp؛ بيتا $ bzrsync متزامنة ~ / BZR / مشروع foo.bzr
وهذا سحب لبيتا جميع الفروع من ~ / BZR / مشروع foo.bzr / ألفا / ألفا، وجميع فروع من ~ / BZR / مشروع foo.bzr / غاما / على غاما. في حالتنا، ألفا فقط لديها فروع في الوقت الحالي، وذلك في الممارسة أننا سنصل فروع ألفا / الجذع وألفا / ميزة 1 من ألفا لبيتا، وحفظ لهم كما ألفا / الجذع وألفا / ميزة 1.
إذا كنت ترغب في العمل على بيتا، الآن فرع من فروع متزامنة حديثا إلى نظرائهم داخل بيتا / الفرعي:
بيتا فرع $ BZR ~ / BZR / مشروع foo.bzr / ألفا / ميزة 1 ~ / BZR / مشروع foo.bzr / بيتا / ميزة 1
بيتا $ BZR شارك ~ / BZR / مشروع foo.bzr / بيتا / ميزة 1 فو ميزة 1
$ بيتا مؤتمر نزع السلاح فو ميزة 1
...
الإختراق الإختراق الإختراق
...
$ بيتا تلتزم
الآن على بيتا سيكون لدينا:
~ / BZR / مشروع foo.bzr /
~ / BZR / مشروع foo.bzr / ألفا
~ / BZR / مشروع foo.bzr / ألفا / جذع
~ / BZR / مشروع foo.bzr / ألفا / ميزة 1
~ / BZR / مشروع foo.bzr / بيتا
~ / BZR / مشروع foo.bzr / بيتا / ميزة 1
~ / BZR / مشروع foo.bzr / غاما
عند الانتهاء من العمل على بيتا، يمكنك مزامنة من ألفا:
على & nbsp؛ ألفا $ bzrsync متزامنة ~ / BZR / مشروع foo.bzr
وهذا سيخلق بيتا / ميزة 1 ألفا أيضا، والتي يمكنك سحب على ألفا / ميزة 1 إن لم يكن اختلفت، أو دمج على خلاف ذلك، وبدء العمل من ألفا مرة أخرى.
يرجى الاطلاع على سبيل المثال bzrsync.yaml ملف لمثال أكثر اكتمالا، والذي يتضمن أيضا مجموعات فرع
الميزات:.
أي عدد من الأجهزة معتمدة
ويضمن الاتساق في جميع الأوقات
المتطلبات:
بيثون
لم يتم العثور على التعليقات