中文

基于神经Transformer的程序合并冲突解决

软件工程 2022-11-30 v4 计算与语言

摘要

协作软件开发是现代软件开发生命周期中不可或缺的组成部分,对大规模软件项目的成功至关重要。当多名开发者在相近代码行进行并发修改时,可能发生合并冲突。此类冲突会使拉取请求和持续集成流水线停滞数小时至数天,严重损害开发者生产力。为解决此问题,我们引入MergeBERT,一种基于令牌级三向差异和Transformer编码器模型的新型神经程序合并框架。通过利用合并冲突解决的受限性质,我们将生成解决序列的任务重新表述为对从真实世界合并提交数据中提取的一组基本合并模式的分类任务。我们的模型在合并解决合成上达到63-68%的准确率,比现有半结构化工具性能提升近3倍,比神经程序合并工具提升2倍。最后,我们证明MergeBERT具有足够灵活性,可处理Java、JavaScript、TypeScript和C#编程语言的源文件。为衡量MergeBERT的实际用途,我们开展了一项用户研究,邀请来自大型OSS项目的25名开发者对122个他们遇到的真实冲突评估MergeBERT建议。结果表明,在实践中,MergeBERT解决方案的接受率高于由自动指标估计的精确率和准确率。此外,我们利用参与者反馈确定了MergeBERT未来的改进方向。

关键词

引用

@article{arxiv.2109.00084,
  title  = {Program Merge Conflict Resolution via Neural Transformers},
  author = {Alexey Svyatkovskiy and Sarah Fakhoury and Negar Ghorbani and Todd Mytkowicz and Elizabeth Dinella and Christian Bird and Jinu Jang and Neel Sundaresan and Shuvendu Lahiri},
  journal= {arXiv preprint arXiv:2109.00084},
  year   = {2022}
}

备注

ESEC/FSE '22 camera ready version. 12 pages, 4 figures, online appendix