سؤال

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

قرأت SVN QA ذات الصلة، لكن لدي سؤالي الخاص أحتاج إلى إجابة.
أستطيع أن أفعل:

/trunk
/tags
/branches
/3rdparty

حيث كل ما نطوره يخرج من / جذع وأي 3rdparty لا نتحول إلى / 3rdparty.

كل شيء جيد، والآن يجب على البرنامج النصي الليلي وضع علامة على الجذع، والخروج من العلامة، والتحقق من الاشياء 3rdparty المطلوبة في الدلائل المناسبة، ثم ابدأ عملية الإنشاء.
يمكن أن يبقى نتيجة البناء (الأشياء المترجمة) البقاء على جبل NFS لبعض الفترة حتى يمكن لفريق التكامل العودة 2 أسابيع وإعادة تشكيل المشاكل.

هل جميع قواعدي مغطاة؟

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

المحلول

أحمر svn هنا يشمل الكثير من المعلومات حول تخطيطات أنواع مختلفة من المشروع وكيفية إدارةها.

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

حظ سعيد

نصائح أخرى

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

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

أود أيضا طبقة الريبو إلى حد ما:

project
 /trunk
 /branches
 /tags
3rdparty

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

من الممكن القيام بذلك باستخدام Repos منفصلة أيضا، وهو أمر جيد، ولكن في هذه الحالة وضعت منفصلة قسم 3RDParty في ريبو منفصل من البداية.

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

لست متأكدا من وضع العلامات على ما تتحدث عنه. هل هذا رقم الإصدار الذي تقصده؟ إذا كان رقم الإصدار يمر أن Thru Script وتسمي البناء.

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

يجب أن تفكر في استخدام externals. للحصول على القطع الأثرية لجهة خارجية.

يقوم البرنامج النصي الخاص بي بالتحقق من الجذع، وتعديل الملفات (يضبط أرقام الإصدار في ملفات AssemessInfo.cs، وما إلى ذلك)، ثم علامات ذلك. إذا كنت لا تحتاج إلى تعديل الملفات بأي شكل من الأشكال، فستكون علامات أول ستكون جيدة أيضا.

بخلاف ذلك، يبدو الإعداد الخاص بك جيدا بالنسبة لي على الأقل.

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