Git中不同diff算法的差异有多大?
软件工程
2019-10-18 v4
摘要
自动识别文件两个版本之间的差异是代码仓库挖掘若干应用中的常见基本任务。Git这一版本控制系统具有diff实用工具,用户可从默认算法Myers到高级的Histogram算法中选择diff算法。通过我们的系统映射,我们确定了近期研究中diff的三个流行应用。在14个Java项目的代码变动度量影响方面,基于不同diff算法,我们在1.7%至8.2%的提交中获得了不同的值。关于引入缺陷的变更识别,我们发现来自10个Java项目的已识别缺陷修复提交中,有6.0%和13.3%的引入缺陷变更结果不同。对于补丁应用,通过我们的手动分析,发现Histogram比Myers更适合提供代码变更。因此,我们强烈建议在挖掘Git仓库考虑源代码差异时使用Histogram算法。
引用
@article{arxiv.1902.02467,
title = {How Different Are Different diff Algorithms in Git?},
author = {Yusuf Sulistyo Nugroho and Hideaki Hata and Kenichi Matsumoto},
journal= {arXiv preprint arXiv:1902.02467},
year = {2019}
}
备注
38 pages, Empirical Software Engineering