أفضل الممارسات للمواصفات الفرعية للميزات مع الزئبق والكسوف؟

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

سؤال

لديّ اثنين من مشاريع النمل لعدة عملاء مختلفين ؛ يبدو أن هيكل الدليل لدي لمشاريعي مثل هذا:

L___standard_workspace
    L___.hg
    L___validation_commons-sub-proj  <- JS Library/Module
    |   L___java
    |   |   L___jar
    |   L___old_stuff
    |   L___src
    |   |   L___css
    |   |   L___js
    |   |       L___validation_commons
    |   L___src-test
    |       L___js
    L___v_file_attachment-sub-proj  <- JS Library/Module
    |   L___java
    |   |   L___jar
    |   L___src
    |   |   L___css
    |   |   L___js
    |   L___src-test
    |       L___js
    L___z_business_logic-sub-proj  <- JS Library/Module
    |   L___java
    |   |   L___jar
    |   L___src
    |       L___css
    |       L___js
    L____master-proj               <- Master web-deployment module where js libraries are compiled to.
        L___docs
        L___java
        |   L___jar
        |   L___src
        |       L___AntTasks
        |           L___build
        |           |   L___classes
        |           |       L___com
        |           |           L___company
        |           L___dist
        |           L___nbproject
        |           |   L___private
        |           L___src
        |               L___com
        |                   L___company
        L___remoteConfig
        L___src
        |   L___css
        |   |   L___blueprint
        |   |   |   L___plugins
        |   |   |   |   L___buttons
        |   |   |   |   |   L___icons
        |   |   |   |   L___fancy-type
        |   |   |   |   L___link-icons
        |   |   |   |   |   L___icons
        |   |   |   |   L___rtl
        |   |   |   L___src
        |   |   L___jsmvc
        |   L___img
        |   |   L___background-shadows
        |   |   L___banners
        |   |   L___menu
        |   L___js
        |   |   L___approve
        |   |   L___cart
        |   |   L___confirm
        |   |   L___history
        |   |   L___jsmvc
        |   |   L___mixed
        |   |   L___office
        |   L___stylesheets
        |   L___swf
        L___src-standard

ضمن نسخة العمل ، تقوم الوحدات بتجميع المشروع الفرعي إلى ملف JavaScript واحد يتم وضعه في دليل JavaScript للمشروع الرئيسي.

فمثلا, ، الدلائل:

  • validation_commons-sub-proj
  • v_file_attachment-sub-proj
  • z_business_logic-sub-proj

... يتم دمجها جميعها وتعديلها (نوعًا من التجميع) في اسم ملف JavaScript مختلف في _master-proj/js الدليل؛ وفي الخطوة الأخيرة _master-proj تم تجميعه ليتم نشره على الخادم.

الآن فيما يتعلق بالطريقة التي أرغب في إعدادها باستخدام HG ، ما أود أن أكون قادرًا على القيام به هو استنساخ المشروع الرئيسي ومشروباته الفرعية من مستودعات خط الأساس الخاصة بهم إلى نسخة عمل عميل ، بحيث يمكن إضافة الوحدات النمطية (باستخدام HG) إلى نسخة عمل معينة من العميل.

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

وبهذه الطريقة ، سأتمكن من استخدام إصلاحات الأخطاء نفسها عبر عملاء مختلفين.

ومع ذلك ... أنا غير متأكد من أفضل طريقة للقيام بذلك باستخدام HG و Eclipse.

أنا قرأت هنا يمكنك استخدام HG's تحويل الامتداد لتقسيم الدليل الفرعي إلى مشروع منفصل باستخدام --filemap اختيار.

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

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

المحلول

نعم ، يبدو الأمر Subrepos هل ما تبحث عنه ، لكنني أعتقد أنه ربما يكون هذا هو الإجابة الصحيحة للسؤال الخاطئ وأشك بشدة في أنك ستشابه المشكلات التي تحدث عند استخدام SVN: الخارجيات

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

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

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