Why are Commits Being Reverted?: A Comparative Study of Industrial and Open Source Projects

Why are Commits Being Reverted?: A Comparative Study of Industrial and Open Source Projects
复制标题

DOI:
10.1109/icsme.2016.83
复制
发表时间:
2016-10
期刊:
2016 IEEE International Conference on Software Maintenance and Evolution (ICSME)
影响因子:
--
通讯作者:
Junji Shimagaki;Yasutaka Kamei;Shane McIntosh;David Pursehouse;Naoyasu Ubayashi
Junji Shimagaki;Yasutaka Kamei;Shane McIntosh;David Pursehouse;Naoyasu Ubayashi
中科院分区:
其他
文献类型:
--
作者:
Junji Shimagaki;Yasutaka Kamei;Shane McIntosh;David Pursehouse;Naoyasu Ubayashi

文献摘要

被引文献

相似文献

软件开发是一个在引入和修复缺陷的同时集成新功能的循环过程。在开发期间,修改源代码文件的提交被上传到版本控制系统。有时候,这些提交需要恢复,即,代码更改需要完全退出软件项目。虽然人们经常可以推测恢复提交的目的(例如,该承诺可能造成了整合或构建问题),但几乎没有经验证据证实这种说法。本文的目的是更好地理解为什么在大型软件系统中提交会被恢复。为此,我们定量和定性地研究了两个专有项目和四个开源项目,以衡量:(1)被恢复的提交比例,(2)最终被恢复的提交在代码库中停留的时间,以及(3)提交被恢复的最常见原因。我们的研究结果表明,在所研究的系统中,1%-5%的提交被恢复。那些最终被恢复的提交在研究的代码库中停留1-35天(中位数)。此外,我们确定了13个常见的恢复提交的原因,并观察到每个原因的恢复提交的频率因项目而异。一个补充的定性分析表明,如果有更好的团队沟通和变更意识,许多被恢复的提交本可以避免。我们的发现让Sony移动的利益相关者意识到,通过更多地关注他们自己的更改,可以减少内部还原提交。另一方面,只有当外部涉众参与改善公司间的沟通或需求获取时,外部恢复提交才能最小化。
Software development is a cyclic process of integrating new features while introducing and fixing defects. During development, commits that modify source code files are uploaded to version control systems. Occasionally, these commits need to be reverted, i.e., the code changes need to be completely backed out of the software project. While one can often speculate about the purpose of reverted commits (e.g., the commit may have caused integration or build problems), little empirical evidence exists to substantiate such claims. The goal of this paper is to better understand why commits are reverted in large software systems. To that end, we quantitatively and qualitatively study two proprietary and four open source projects to measure: (1) the proportion of commits that are reverted, (2) the amount of time that commits that are eventually reverted linger within a codebase, and (3) the most frequent reasons why commits are reverted. Our results show that 1%-5% of the commits in the studied systems are reverted. Those commits that are eventually reverted linger within the studied codebases for 1-35 days (median). Furthermore, we identify 13 common reasons for reverting commits, and observe that the frequency of reverted commits of each reason varies broadly from project to project. A complementary qualitative analysis suggests that many reverted commits could have been avoided with better team communication and change awareness. Our findings made Sony Mobile's stakeholders aware that internally reverted commits can be reduced by paying more attention to their own changes. On the other hand, externally reverted commits could be minimized only if external stakeholders are involved to improve inter-company communication or requirements elicitation.