Why are commits being reverted? A comparative study of industrial and open source projects

Junji Shimagaki, Yasutaka Kamei, Shane McIntosh, David Pursehouse, Naoyasu Ubayashi

Research output: Chapter in Book/Report/Conference proceedingConference contribution

3 Citations (Scopus)

Abstract

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.

Original languageEnglish
Title of host publicationProceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages301-311
Number of pages11
ISBN (Electronic)9781509038060
DOIs
Publication statusPublished - Jan 12 2017
Event32nd IEEE International Conference on Software Maintenance and Evolution, ICSME 2016 - Raleigh, United States
Duration: Oct 2 2016Oct 10 2016

Other

Other32nd IEEE International Conference on Software Maintenance and Evolution, ICSME 2016
CountryUnited States
CityRaleigh
Period10/2/1610/10/16

Fingerprint

Communication
Software engineering
Control systems
Defects
Industry

All Science Journal Classification (ASJC) codes

  • Safety, Risk, Reliability and Quality
  • Software

Cite this

Shimagaki, J., Kamei, Y., McIntosh, S., Pursehouse, D., & Ubayashi, N. (2017). Why are commits being reverted? A comparative study of industrial and open source projects. In Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016 (pp. 301-311). [7816476] Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/ICSME.2016.83

Why are commits being reverted? A comparative study of industrial and open source projects. / Shimagaki, Junji; Kamei, Yasutaka; McIntosh, Shane; Pursehouse, David; Ubayashi, Naoyasu.

Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016. Institute of Electrical and Electronics Engineers Inc., 2017. p. 301-311 7816476.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Shimagaki, J, Kamei, Y, McIntosh, S, Pursehouse, D & Ubayashi, N 2017, Why are commits being reverted? A comparative study of industrial and open source projects. in Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016., 7816476, Institute of Electrical and Electronics Engineers Inc., pp. 301-311, 32nd IEEE International Conference on Software Maintenance and Evolution, ICSME 2016, Raleigh, United States, 10/2/16. https://doi.org/10.1109/ICSME.2016.83
Shimagaki J, Kamei Y, McIntosh S, Pursehouse D, Ubayashi N. Why are commits being reverted? A comparative study of industrial and open source projects. In Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016. Institute of Electrical and Electronics Engineers Inc. 2017. p. 301-311. 7816476 https://doi.org/10.1109/ICSME.2016.83
Shimagaki, Junji ; Kamei, Yasutaka ; McIntosh, Shane ; Pursehouse, David ; Ubayashi, Naoyasu. / Why are commits being reverted? A comparative study of industrial and open source projects. Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016. Institute of Electrical and Electronics Engineers Inc., 2017. pp. 301-311
@inproceedings{3db9ca0fa1ed4e67a9ed0a26a3124ddc,
title = "Why are commits being reverted? A comparative study of industrial and open source projects",
abstract = "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.",
author = "Junji Shimagaki and Yasutaka Kamei and Shane McIntosh and David Pursehouse and Naoyasu Ubayashi",
year = "2017",
month = "1",
day = "12",
doi = "10.1109/ICSME.2016.83",
language = "English",
pages = "301--311",
booktitle = "Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
address = "United States",

}

TY - GEN

T1 - Why are commits being reverted? A comparative study of industrial and open source projects

AU - Shimagaki, Junji

AU - Kamei, Yasutaka

AU - McIntosh, Shane

AU - Pursehouse, David

AU - Ubayashi, Naoyasu

PY - 2017/1/12

Y1 - 2017/1/12

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=85013105631&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85013105631&partnerID=8YFLogxK

U2 - 10.1109/ICSME.2016.83

DO - 10.1109/ICSME.2016.83

M3 - Conference contribution

AN - SCOPUS:85013105631

SP - 301

EP - 311

BT - Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016

PB - Institute of Electrical and Electronics Engineers Inc.

ER -