分支的内聚与隔离式开发:分布式版本控制的新视角
1. 分布式版本控制(DVC)的崛起
2005 年 4 月,两个开源 DVC 系统 Git 和 Mercurial 同时开启开发。到 2011 年,大量开源项目已迁移至 DVC。据 Debian 数据,在报告版本控制(VC)使用情况的项目中,44%(3994 个项目)采用了 DVC,这表明 DVC 已得到广泛接受和应用。
VC 对工作流程有深远影响,采用新的 VC 并非小事。许多开源项目在更换 VC 时,会有大量讨论、迁移工作和工作流程的改变,例如 GNOME 迁移到 Git、Python 迁移到 Mercurial 等。
2. 研究问题提出
2.1 研究问题 1:开源项目为何迅速采用 DVC?
普遍观点认为分布式开发支持是快速过渡的根源,但实际观察发现,多数项目仍采用集中式模型,只是分支使用有显著变化。
在使用 DVC 之前,分支集成“痛苦且困难”。例如,Subversion 的分支和合并问题严重,两个分支可能差异过大而不得不放弃一个。以前,分支通常仅用于发布,而非新特性开发。如 Ruby on Rails 之前只有版本分支,特性分支非常罕见。
初步实证研究显示,采用 DVC 前,60 个项目平均每月每个项目创建 1.54 个分支;采用 DVC 后,平均升至 3.67 个。Wilcoxon 秩和检验表明这两个群体有显著差异(p ≪ 0.01)。
没有便捷的分支和合并功能时,开发者会传递大补丁集,难以审查。新开发者因无提交权限,工作受限,维护也变得困难。因此,DVC 的分支和合并功能是项目采用的主要动机,而非分布式特性。 </
超级会员免费看
订阅专栏 解锁全文
631

被折叠的 条评论
为什么被折叠?



