中文

解纠缠细粒度代码变更

软件工程 2015-02-25 v1

摘要

工作一段时间后,开发人员将其代码变更提交到版本控制系统。这样做时,他们经常将不相关的变更(例如错误修复和重构)捆绑在单次提交中,从而产生了所谓的纠缠提交。共享纠缠提交是有问题的,因为它使这些提交的审查、回退和集成更加困难,并且使项目的历史分析可靠性降低。研究人员致力于解纠缠现有提交,即找出提交的哪些部分与哪些任务相关。在本文中,我们以两种方式对这项工作做出贡献:(1) 一个公开可用的解纠缠代码变更数据集,由两名开发人员在四个月期间内将其代码变更准确拆分为自包含任务而创建;(2) 一种新方法 EpiceaUntangler,通过利用细粒度代码变更信息来帮助开发人员共享解纠缠提交(又称原子提交)。EpiceaUntangler 基于该公开数据集并进行了测试,并通过部署给 7 名开发人员使用两周进行了进一步评估。我们记录了在自动创建解纠缠细粒度代码变更簇时的中位成功率 91% 和平均成功率 75%。

关键词

引用

@article{arxiv.1502.06757,
  title  = {Untangling Fine-Grained Code Changes},
  author = {Martín Dias and Alberto Bacchelli and Georgios Gousios and Damien Cassou and Stéphane Ducasse},
  journal= {arXiv preprint arXiv:1502.06757},
  year   = {2015}
}