Computer Science and Engineering, Department of

 

Date of this Version

8-2016

Citation

Waterloo, Matias. Improving the Efficiency of CI with Uber-commits. MS Thesis. University of Nebraska-Lincoln Lincoln, NE, 2016.

Comments

A THESIS Presented to the Faculty of The Graduate College at the University of Nebraska In Partial Fulfillment of Requirements For the Degree of Master of Science, Major: Computer Science, Under the Supervision of Sebastian Elbaum and Suzette Person. Lincoln, Nebraska: August, 2016.

Copyright (c) 2016 Matias Waterloo

Abstract

Continuous Integration (CI) is a software engineering practice where developers break their coding tasks into small changes that can be integrated with the shared code repository on a frequent basis. The primary objectives of CI are to avoid integration problems caused by large change sets and to provide prompt developer feedback so that if a problem is detected, it can be easily and quickly resolved. In this thesis, we argue that while keeping changes small and integrating often is a wise approach for developers, the CI server may be more efficient operating on a different scale. In our approach, the CI server monitors the queue of commits to be integrated and merges multiple commits into a single Uber commit, thus avoiding the redundant operations, e.g., testing, associated with integrating each commit individually. If an Uber commit fails during the merge, build or test process, our approach uses a culprit analysis to find the commit(s) causing the failure. An analysis of our approach on an open source project shows that Uber commits can improve both CI server efficiency by 7% to 11%, and reduce developer feedback time by 7% to 30%.

Advisor: Sebastian Elbaum and Suzette Person

Share

COinS