Safe-commit analysis to facilitate team software development

  • Authors:
  • Jan Wloka;Barbara Ryder;Frank Tip;Xiaoxia Ren

  • Affiliations:
  • Dept. of Computer Science, Rutgers University, Piscataway, NJ 08854, USA;Dept. of Computer Science, Virginia Tech, Blacksburg, 24061, USA;IBM T. J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY 10598, USA;Dept. of Computer Science, Rutgers University, Piscataway, NJ 08854, USA

  • Venue:
  • ICSE '09 Proceedings of the 31st International Conference on Software Engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software development teams exchange source code in shared repositories. These repositories are kept consistent by having developers follow a commit policy, such as “Program edits can be committed only if all available tests succeed.” Such policies may result in long intervals between commits, increasing the likelihood of duplicative development and merge conflicts. Furthermore, commit policies are generally not automatically enforceable. We present a program analysis to identify committable changes that can be released early, without causing failures of existing tests, even in the presence of failing tests in a developer's local workspace. The algorithm can support relaxed commit policies that allow early release of changes, reducing the potential for merge conflicts. In experiments using several versions of a non-trivial software system with failing tests, 3 newly enabled commit policies were shown to allow a significant percentage of changes to be committed.