延长使用分支机构的利弊
我希望能够为大多数可想到的情况和组织选择正确的分支策略。 因此,我正在寻找在开发组织中扩展代码存储库分支的使用的积极和消极影响的广泛列表。
请在每个帖子中只发表一个赞成或一个反对,以便投票系统可以在一定程度上帮助对反馈进行排名。
I want to be able to choose the right branching strategy for most thinkable situations and organizations. So I'm looking for a extensive list of positive and negative effects of extending the use of code repository branches in a development organization.
Please only post one pro or one con in each post, so that the voting system can help rank the feedback somewhat.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
优点:通过将最新部署的版本保留在主干中,可以快速推出小修复,而无需对最新开发版本进行大量测试。
Pro: By keeping latest deployed version in trunk, small fixes can be rolled out quickly without extensive testing of the latest development version.
优点:开发人员可以在更紧密的迭代中更自由地工作,而不会踩到彼此的脚。
Pro: Developers can work more freely in tighter iterations without stepping on eachother's feet.
优点:如果您有很多分支机构,您将被迫采用现代 DVCS(我的经验是使用 Mercurial,但我听说 git 或 Bazaar 也不错),而不是继续使用传统的集中式系统(例如 svn)。
Pro: if you have many branches you'll be pushed to adopt a modern DVCS (my experience is with Mercurial but I hear git or Bazaar are also good) rather than stay with a traditional centralized system (like, say, svn).
优点:分支可用于促进尝试新代码时的“假设”场景。 最后可以决定合并新功能或放弃它。
Pro: Branches can be used to facilitate 'what-if' scenario's in trying out new code. At the end a decision can be made to merge the new feature or to abandon it.
缺点:同时有太多分支,你会开始忘记事情是在哪里提交的、在哪里进行了更改等。
Con: Having too many branches in the air at the same time and you start forgetting where things where commited, where changes have been made etc.
缺点(而且可能是一个大问题):在未来的某个时间点合并。 持续时间越长,代码库偏差越大,你的日子就会越难过。 我的建议:仔细考虑分支,确保只在必要时才这样做,并在需要时考虑稍后合并所涉及的工作。
Con (and it can be a big one): Merging back at a point in the future. The longer the duration and the greater the deviation of code base, the harder your life will be. My advice: think very carefully about branching and ensure you only do it when necessary and consider the effort involved in merging at a later date should it be required.
缺点:合并噩梦。
Con: Merge nightmare.
缺点:初级开发者的学习门槛较高。
Con: Greater learning threshold for junior developers.
优点:每个更新都独立于其他更新,因此可以并行工作。
Pro: Each update is independant from the others, so work can be parallelized.
缺点:有人必须来管理分支机构并掌控一切。 在大多数团队中,这都被忽视了。
Con: someone has to manage the branch(es) and keep on top of things. In most teams this falls by the way-side.
优点:在分散代码方面具有更大的灵活性,以便同时开发或支持多个工作流。
Pro: Greater flexibility in diverging code for the purpose of simultaneously developing on or supporting multiple streams of work.