Mar*_*tyn 5 tfs tfs2010 branching-and-merging
分支之间的亲子关系的方向是否重要?父/子只是一个抽象概念,它确定哪个是源,哪个是目的地,或者是否只能在一个方向上执行特定操作,因此,使关系的方向变得重要?
这里有一些背景信息来解释这个问题的原因..
我们最近实施了一个新的分支策略,并决定采用这种简单的设置:
Dev -------------------------------
\
Main >-----------------------
\
Production >---------------
Run Code Online (Sandbox Code Playgroud)
这似乎对我们有用,但我读到的所有建议指南都表明Main应该是根.所以它应该看起来像这样:
Dev >-----------------------
/
Main ------------------------------
\
Production >---------------
Run Code Online (Sandbox Code Playgroud)
这非常相似,但显然Main和Dev之间的父子关系是相反的.
如果我们将Dev作为其作为孩子的主要根源,我们会给自己带来什么问题?我能看到的唯一问题是,如果我们从主要的第二个Dev分支开始.它将与Main的另一个Dev分支具有相反的父子关系,但我再次问这有什么意义?
感谢您的关注,如果您想了解更多信息,请与我们联系.
短期:短期内告诉大家对待DEV是MAIN的孩子,即使它看起来像TFS中的父母.
注意:您可以在TFS中重新显示DEV分支......如果您认为特定团队的概念术语和流程风险大于纠正TFS分支结构的风险,则可能应该这样做.
我会回应说,分支方向在技术上对TFS来说并不重要.但要非常小心那些容易混淆的人类.重要的是,每个人在分支之间进行合并(或创建新分支)都清楚地理解分支层次结构,并遵循您的组的官方术语和分支/合并过程.
MAIN(又名Root或Trunk或Ancestor分支): 您可以任意指定任何分支为"Main","root","trunk"等分支.请记住,这些术语通常可以互换使用,特别是对于从不同公司雇用的新开发人员.只要每个人进行合并和分支都知道你将MAIN分支视为团队的根/干线分支,那么你就可以了.如果你随便问一个人,使一个新的版本关闭根分支,他们决定根= Dev分支,那么你有一个问题(即使你的分支图清楚地支持了"根"树枝DEV).
合并方向: FI(从父母到孩子的前向整合)和RI(从孩子到父母的反向整合)是用于描述合并方向的最常用术语.我订阅了FIRI("Fiery")合并模式,以确保在RI合并到父级之前,父级中的所有更改都合并到子级(解决所有冲突并根据需要进行测试).这确实有助于保持父母分支比儿童更稳定.这个想法对你的问题很重要,因为目前FI意味着从DEV(父)到MAIN(孩子).如果您和所有分支/合并人员总是可以假装DEV是子分支,那么您可以说"在合并到MAIN分支之前是否进行了FI?".同样你的团队的分公司/合并公会可以明确说明" 重要提示:在本指南中(和一般的讨论)总是把Dev分支作为主要的孩子即使在技术上是TFS父(截至2012年4月25日)." 然后,在讨论DEV分支时,所有语句都可以使用标准术语而不必经常使用反向术语.
(如果您已经使用其他术语在你的团队,如"合并向上"和"向下合并",即确定...只要每个人,包括新员工清楚地了解这些术语的意思.(还要注意"向上"和" "不同公司的分支机构不同,所以这个术语会引起混淆."
新 分支:如果您的团队决定从MAIN创建一个新的DEV_FeatureX分支,那么它将是一个子分支.(TFS强制每个分支只有单亲......你目前尚无法孩子从两位母亲:-)诞生了.)同样,如果你分公司按版本(现在或以后),这些分支机构将主要分支的新的儿童.随着时间的推移,这将
请记住,计算机出错的频率远远低于人类.请享用!- Zephan