How different are different diff algorithms in Git?
How different are different diff algorithms in Git?
复制标题
DOI:
10.1007/s10664-019-09772-z
复制
发表时间:
2019-02
影响因子:
4.1
通讯作者:
Yusuf Sulistyo Nugroho;Hideaki Hata;Ken-ichi Matsumoto
中科院分区:
文献类型:
--
作者:
Yusuf Sulistyo Nugroho;Hideaki Hata;Ken-ichi Matsumoto
Automatic identification of the differences between two versions of a file is a common and basic task in several applications of mining code repositories. Git, a version control system, has a diff utility and users can select algorithms of diff from the default algorithmMyersto the advancedHistogramalgorithm. From our systematic mapping, we identified three popular applications of diff in recent studies. On the impact on code churn metrics in 14 Java projects, we obtained different values in 1.7% to 8.2% commits based on the different diff algorithms. Regarding bug-introducing change identification, we found 6.0% and 13.3% in the identified bug-fix commits had different results of bug-introducing changes from 10 Java projects. For patch application, we found that theHistogramis more suitable thanMyersfor providing the changes of code, from our manual analysis. Thus, we strongly recommend using theHistogramalgorithm when mining Git repositories to consider differences in source code.