Evaluation of Version Control Merge Tools


METADATA ONLY
Loading...

Date

2024

Publication Type

Conference Paper

ETH Bibliography

yes

Citations

Altmetric
METADATA ONLY

Data

Rights / License

Abstract

A version control system, such as Git, requires a way to integrate changes from different developers or branches. Given a merge scenario, a merge tool either outputs a clean integration of the changes, or it outputs a conflict for manual resolution. A clean integration is correct if it preserves intended program behavior, and is incorrect otherwise (e.g., if it causes a test failure). Manual resolution consumes valuable developer time, and correcting a defect introduced by an incorrect merge is even more costly.New merge tools have been proposed, but they have not yet been evaluated against one another. Prior evaluations do not properly distinguish between correct and incorrect merges, are not evaluated on a realistic set of merge scenarios, and/or do not compare to state-of-the-art tools. We have performed a more realistic evaluation. The results differ significantly from previous claims, setting the record straight and enabling better future research. Our novel experimental methodology combines running test suites, examining merges on deleted branches, and accounting for the cost of incorrect merges.Based on these evaluations, we created a merge tool that outperforms all previous tools under most assumptions. It handles the most common merge scenarios in practice.

Publication status

published

Editor

Book title

ASE '24: Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering

Journal / series

Volume

Pages / Article No.

831 - 843

Publisher

Association for Computing Machinery

Event

39th IEEE/ACM International Conference on Automated Software Engineering (ASE 2024)

Edition / version

Methods

Software

Geographic location

Date collected

Date created

Subject

software merging; version control; structured merge; mining software repositories; git merge; Spork; IntelliMerge; git-hires-merge

Organisational unit

Notes

Funding

Related publications and datasets