并行开发:开发人员应该在同一个分支中工作吗?

时间:2010-04-29 20:10:34

标签: version-control

多个开发人员是否应该在同一个分支中工作,并且更新 - 修改 - 提交?或者每个开发人员应该独自拥有自己的每个分支?共享分支如何影响您正在进行日常维护而不是未维护的代码流的环境?此外,如果您在每个开发人员完成后立即部署并通过测试(快速,而不是将所有工作放入单个版本中),这将如何工作。

4 个答案:

答案 0 :(得分:5)

总的来说,我发现让开发人员(正在同一个项目上工作)使用相同的分支更能更快地找到集成问题。如果开发人员都使用单独的分支,那么您只是推迟可能的集成问题,直到稍后合并分支。

当然,让开发人员在同一个分支上工作意味着您需要在这些开发人员之间进行实际的通信,但这是一个社会问题,而不是技术问题。

如果首先存在该分支的充分理由(例如,该软件的先前版本的补丁版本,或特定客户的特殊版本),开发人员将在不同的分支上工作。

请注意,Git和Mercurial等工具允许开发人员轻松创建自己的私有分支来组织自己的工作。这是与多个共享分支的开发人员不同的情况,应该鼓励(通常是短暂的)私人分支。

答案 1 :(得分:2)

分支是一种版本控制任何可能破坏主线/主干的任何功能或实验代码的方法。

虽然开发人员通常拥有自己的个人分支进行深度实验,但分支机构通常会围绕添加新功能。这些新功能通常需要不止一个人提交。

例如,在一个网络项目中,两位开发人员和一位设计师可能会对他们公司的网站进行整容。他们仍然需要保持他们的主线/主干代码清洁,以防他们需要在整容完成之前快速更改它。因此,他们创建了一个“整容”分支,并在此工作。虽然开发人员提交了javascript,但设计人员可以提交CSS和图像。完成整形功能后,他们可以将其合并到主线并实时发送。

他们中任何一个人需要个人分支的唯一原因就是进行实验。也许设计师正在尝试实现“滑动门”标签,例如,无法在IE6中获得填充。如果他解决了这个问题,他可以将它合并到整容分支中,如果他不能,他就会忽略它并继续将其余的设计带回到整容分支中。

答案 2 :(得分:0)

在某种程度上,您使用的版本控制软件会将您推向特定的方法。 GIT面向开源贡献者,类似于“一个开发人员”模型(分支甚至不是GIT中的概念.GIT更多地是关于管理变更)。 Clearcase更加公司化,因此您在分支机构中拥有多个开发人员,但每个开发人员都可以在他或她自己的视图中进行游戏。

我同意格雷格的回答,这更像是一个社会规划问题。一个分支上的很多开发人员会互相踩到脚趾。我一直在开发一个项目,开发人员比单个源文件更多:)

答案 3 :(得分:0)

我认为,无论源控制工具有多好,分支的合并都可能会出现问题(丢弃或不一致的功能)。我更愿意选择在一个主分支上工作的多个开发人员。可能存在其他分支,例如生产错误修复或概念验证(POC),其中合并可能/应该在更改后很快发生(错误修复)或合并可能不需要发生的好机会(POC)。 / p>