سؤال

وأنا جديد على بوابة و لا أعرف حتى الآن كم سوف تناسب احتياجاتي ، لكنها تبدو مثيرة للإعجاب.

لدي واحد webapp التي تستخدم بمختلف العملاء (جانغو+جافا سكريبت)

أنا تخطط لاستخدام بوابة التعامل مع هؤلاء العملاء بمختلف نسخة الفروع.كل زبون يمكن أن يكون مخصص الملفات والمجلدات وإعدادات إصدارات محسنة...ولكن يجب أن تشترك في نفس 'الأساسية'.نحن فريق صغير و suscribed جيثب الحساب.

هو فرع طريقة جيدة للتعامل مع هذه الحالة ؟

حول ملف الإعدادات ، كيف يمكنك المضي قدما ؟ هلا .gitignore العملاء محددة ملف الإعدادات وإضافة إعدادات.xml.نموذج ملف على سبيل المثال هو الريبو ?

أيضا, هل هناك أي طريقة لمنع بعض الملفات المراد دمجها في الماجستير ؟ (ولكن ملتزمة العملاء فرع).على سبيل المثال, id مثل لحفظ بعض بيانات العميل إلى العميل فرع ولكن منع من كونها ارتكبت لسيده.

هو .gitignore الملف فرع معين ؟ نعم

تحرير بعد قراءة كل إجاباتك (شكرا) قررت أول ريفاكتور بلدي جانغو هيكل المشروع إلى عزل الأساسية و بمختلف التطبيقات في تطبيقات فرعي.القيام بذلك يجعل نظافة مشروع التغيير والتبديل .gitignore الملف يجعل من السهل استخدام بوابة فروع لإدارة بمختلف العملاء الإعدادات !

جو.

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

المحلول

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

نصائح أخرى

وأود أن لا تستخدم الفروع لإنجاز ما كنت تحاول القيام به.

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

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

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

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

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

بعد قراءة كل إجاباتك (شكرا) قررت أول ريفاكتور بلدي جانغو هيكل المشروع إلى عزل الأساسية و بمختلف التطبيقات في تطبيقات فرعي.القيام بذلك يجعل نظافة مشروع التغيير والتبديل .gitignore في مختلف فروع الملف يجعل من السهل استخدام بوابة فروع لإدارة بمختلف العملاء الإعدادات !

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