An Analysis of Merge Conflicts and Resolutions in Git-Based Open Source Projects
Version control systems such as Git support parallel collaborative work and became very widespread in the open-source community. Whilst Git offers some very interesting features, resolving conflicts that arise during synchronisation of parallel changes is a time-consuming task. In this paper we present an analysis of concurrency and conflicts in official Git repository of four projects: Rails, IkiWiki, Samba and Linux Kernel. We analyse the collaboration process of these projects at specific periods revealing how change integration and conflict rates vary during project development life-cycle. We also analyse how often users decide to rollback to previous document version when the integration process generates conflicts. Finally, we discuss the mechanism adopted by Git to consider changes made on two continuous lines as conflicting.