kirancodes.me
To Proof Maintenance & Beyond!
FSE 2021★ Distinguished Paper

SmartCommit: a graph-based interactive assistant for activity-oriented commits

Bo Shen, Wei Zhang, Christian Kästner, Haiyan Zhao, Zhao Wei, Guangtai Liang, Zhi Jin

Abstract

In collaborative software development, it is considered to be a best practice to submit code changes as a sequence of cohesive commits, each of which records the work result of a specific development activity, such as adding a new feature, bug fixing, and refactoring. However, rather than following this best practice, developers often submit a set of loosely-related changes serving for different development activities as a composite commit, due to the tedious manual work and lack of effective tool support to decompose such a tangled changeset. Composite commits often obfuscate the change history of software artifacts and bring challenges to efficient collaboration among developers. To encourage activity-oriented commits, we propose SmartCommit, a graph-partitioning-based interactive approach to tangled changeset decomposition that leverages not only the efficiency of algorithms but also the knowledge of developers. To evaluate the effectiveness of our approach, we (1) deployed SmartCommit in an international IT company, and analyzed usage data collected from a field study with 83 engineers over 9 months; and (2) conducted a controlled experiment on 3,000 synthetic composite commits from 10 diverse open-source projects. Results show that SmartCommit achieves a median accuracy between 71–84% when decomposing composite commits without developer involvement, and significantly helps developers follow the best practice of submitting activity-oriented commits with acceptable interaction effort and time cost in real collaborative software development.

BibTeX
@inproceedings{Shen-al:FSE21,
  author    = {Bo Shen and
               Wei Zhang and
               Christian K{\"{a}}stner and
               Haiyan Zhao and
               Zhao Wei and
               Guangtai Liang and
               Zhi Jin},
  title     = {{SmartCommit:} a graph-based interactive assistant for activity-oriented commits},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {379--390},
  publisher = {{ACM}},
  year      = {2021},
}

Related papers