سؤال

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

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

ما هي التقنيات التي يمكن استخدامها بطريقة أخرى للتخفيف من سيناريو مثل السيناريو (السيناريوهات) الموصوفة أعلاه؟

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

المحلول

أتفق مع Harpreet في أنك قد ترغب في إعادة النظر في كيفية إعداد هيكلك المتفرع.ومع ذلك، إذا كنت تريد حقًا تنفيذ هذا النوع من الدمج، فيمكنك من خلال ما يسمى الدمج الذي لا أساس له.يتم تشغيله من موجه أوامر tfs،

Tf merge /baseless <<source path>> <<target path>> /recursive

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

لقد وجدت أيضًا أن هذه الوثيقة لا تقدر بثمن عند إنشاء هيكل تفريع tfs الخاص بناإرشادات تفريع خادم Microsoft Team Foundation

نصائح أخرى

tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch

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

AFAIK يمكنك القيام بذلك طالما تم إنشاء الفروع من نفس المجلد الأصلي.

  • صُندُوق/
  • الفروع/ -/الميزات 1 (متفرعة من الجذع) -/الميزات 2 (متفرعة من الجذع)

إذا قمت بذلك، فمن المفترض أن تكون قادرًا على الدمج بين الميزة 1 والميزة 2 أيضًا.

على الرغم من أن تجربتي في التفرع/الدمج مع TFS تجعلني أرغب في المزيد.أتمنى لو كان لدينا SVN فقط.

نعم، يمكنك إجراء عملية دمج لا أساس لها، ولكن فقط من سطر الأوامر (tf.exe).

سيسمح لك TFS بالدمج مع فرع ليس فرعًا/أصلًا/فرعًا - وتسمى هذه عمليات الدمج التي لا أساس لها.انظر هذه الروابط:

من ام اس دي ان

من فريق TFS عبر CodePlex

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

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

لقد قمنا بتفرع فرعنا الرئيسي (اسم الفرع "الرئيسي") لميزة (اسم الفرع "الميزة")، ثم كنت بحاجة إلى بعض العمل في فرع تم تفرعه أيضًا من الفرع الرئيسي (اسم الفرع "ديف").سأعتبر فرعي الميزات والمطورين أشقاء لأنهما ينتميان إلى نفس الوالد.لقد قمت بدمج الميزة في dev وتم وضع علامة على جميع الملفات (14000) على أنها دمج، وتم وضع علامة على بعضها على أنها دمج أو تحرير.لم أتمكن من الإلغاء (سيتوقف الاستوديو المرئي فقط)، لذلك قبلت الدمج.ثم قمت بدمج dev في main، ثم قمت بسحب main إلى الميزة، ومرة ​​أخرى تم وضع علامة على 14000 ملف للدمج.لقد كنت منزعجًا جدًا، وأخشى أن يستمر هذا الأمر.

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

بعد اختبارنا الصغير، أكملت الدمج من العنصر الرئيسي إلى الميزة.وكما هو الحال في الاختبار، فإن عمليات الدمج لدينا الآن تظهر فقط الملفات التي تم تحريرها.يمكننا الانتقال من dev إلى الميزة، والميزة إلى main، والرئيسي إلى dev، وما إلى ذلك.

لقد لاحظت أنه تم تعديل جميع تواريخ الملفات المتفرعة.ربما هذه مشكلة؟

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