كيف يجب أن أقوم بالتفرع ووضع علامة قبل الإصدار وبعده؟

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

سؤال

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

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

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

  • هل تقوم بتسمية فروع الإصدار أم تستخدم نفس فرع الإصدار برمز جديد في كل مرة؟
  • هل تريد حذف فروع الإصدار بمجرد وجودها كعلامات؟
  • كيف يمكنك تسمية الفروع/العلامات الخاصة بك؟
هل كانت مفيدة؟

المحلول

أقترح قراءة هذه الإجابة

إدارة الإصدار في SVN

لديك في الأساس فرع واحد يسمى RELEASE يمكنك وضع علامة عليه من هناك إذا كنت تريد ذلك.واحتفظ بنسخة رمز الحافة النازفة في صندوق السيارة

فيما يتعلق بتسمية الإصدار:يعتمد ذلك على ما يناسبك ومن هم الأشخاص الذين يرون رقم الإصدار.

فكر في استخدام MajorRelease.MinorRelease، ثم ربما في مكان ما للمهتمين تقنيًا، قد تحدد رقم إصدار التصحيح (على سبيل المثال، التحديثات التلقائية لتطبيق gg ويظل Major.minor كما هو).

رئيسي:تغييرات كبيرة -> وظائف جديدة/كسر توافق ثانوية:واجهة متوافقة (على سبيل المثالالأداء) التصحيح:اصلاحات الشوائب

نصائح أخرى

يمكنك استخدام المعلومات الواردة هنا كدليل حتى إذا كنت لا تستخدم TFS.

إرشادات المتفرعة

هناك الكثير من الطرق للعمل.الذي أستخدمه هو ما يلي:

project_repository
|
|- صُندُوق //Where the current in support release is.
|
|- الفروع //Where new features/big fixes or refactors are made.
|
|- العلامات //Where all releases are tagged.
     |
     |- إطلاق //where all release tags are located
     |- يوميًا //where all daily tags are located.

التسمية التي نستخدمها هي التالية:

  • بالنسبة للفروع نقوم بتسمية الفرع بالمهام الرئيسية التي سيتم القيام بها فيه (مثال:admin_module_refactor).
  • بالنسبة للعلامات، نقوم بتسمية العلامات برقم الإصدار (mayor.minor.micro.على سبيل المثال:1.0.2) عندما تتوافق مع علامة الإصدار.أو مع تاريخ علامات العمل اليومية (على سبيل المثال:YY_MM_DD).

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

لقد قمت بأتمتة عملية الإنشاء باستخدام CruiseControl.Net.كانت لدينا بنيات تتوافق مع أرقام البناء لذا سيكون إصدار dll هو 6.5.4.1234.سيتم دائمًا تحديث الإصدارين 6 و5 يدويًا عندما يكون لدينا إصدارات رئيسية وثانوية.تم تحديث 4 يدويًا بعد الإنشاء (وأعيد تعيين 1234 إلى 0 أيضًا).تقوم عملية الإنشاء دائمًا بتحديث 1234 إلى 1235.

عندما نحرره من قناة الاتصال (سيكون الإصدار دائمًا 6.0.0.x)، فإننا نقوم بالتفرع يدويًا ونطلق عليه اسم Branch_6_0.سيتم بعد ذلك إنشاء الفرع كـ 6.0.1.سينتقل الجذع إلى 6.1 أو 7.0.

كان لدى CruiseControl وضعين (التطوير والاختبار).تم إنشاء الاختبار دائمًا عند الطلب وسيقوم بإنشاء فرع يتوافق مع إصدار البناء.

في مرحلة ما ، أريد أن أجعل فرعًا كفرع للإصدار وإجراء أي تغييرات في اللحظة الأخيرة على الفرع وإطلاقه

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

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

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

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