Merging By Decentralized Eventual Consistency Algorithms
EAI Endorsed Transactions on Collaborative Computing
Merging mechanism is an essential operation for version control systems. When each member of collaborative development works on an individual copy of the project, software merging allows to reconcile modifications made concurrently as well as managing software change through branching. The collaborative system is in charge to propose a merge result that includes user's modifications. T h e u s e rs n o w h a v e t o c h e ck a n d adapt this result. The adaptation should be as effort-less as
... sible, otherwise, the users may get frustrated and will quit the collaboration. This paper aims to reduce the conflicts d u r i ng t h e c o l l aboration a n d i m p r ove t h e p r o d uctivity. I t h a s thr objectives: study the users' behavior during the collaboration, evaluate the quality of textual merging results produced by specific a lgorithms a nd p ropose a s olution t o improve t he r esult q uality p roduced b y t he default merge tool of distributed version control systems. Through a study of eight open-source repositories totaling more than 3 million lines of code, we observe the behavior of the concurrent modifications d uring t he m erge p rocedure. We i dentified wh en th e ex isting merge techniques under-perform, and we propose solutions to improve the quality of the merge. We finally compare with the traditional merge tool through a large corpus of collaborative editing.