协作软件开发中合并冲突的预测
软件工程
2019-07-16 v1 机器学习
摘要
背景。在协作软件开发中,开发者常使用分支来添加特性或修复缺陷。当合并两个分支的更改时,若更改不一致则可能发生冲突。开发者需在完成合并前解决这些冲突,这是一个易出错且耗时的过程。尽早检测合并冲突,即在冲突变大变复杂前提醒开发者解决,是应对此问题的方法之一。现有技术通过在后台持续拉取并合并所有分支组合,以在冲突发生时立即通知开发者,这是一个计算代价高昂的过程。降低该代价的一种潜在方法是使用基于机器学习的冲突预测器,过滤掉不太可能发生冲突的合并场景,即安全合并场景。目标。本文中,我们评估冲突预测是否可行。方法。我们设计了一个基于9个轻量级Git特征集的合并冲突预测分类器。为评估预测器,我们在来自744个GitHub仓库、涵盖七种编程语言的267,657个合并场景上进行了大规模研究。结果。我们的结果表明,在预测安全合并场景时取得了高f1分数,不同编程语言下从0.95到0.97不等;对于冲突合并场景,f1分数在0.57到0.68之间。结论。预测合并冲突在实践中是可行的,尤其在将安全合并场景预测作为推测性合并的预过滤步骤这一背景下。
引用
@article{arxiv.1907.06274,
title = {Predicting Merge Conflicts in Collaborative Software Development},
author = {Moein Owhadi-Kareshk and Sarah Nadi and Julia Rubin},
journal= {arXiv preprint arXiv:1907.06274},
year = {2019}
}