Saved in:
Bibliographic Details
Main Authors: Schesch, Benedikt, Featherman, Ryan, Yang, Kenneth J., Roberts, Ben R., Ernst, Michael D.
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2410.09934
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913544589541376
author Schesch, Benedikt
Featherman, Ryan
Yang, Kenneth J.
Roberts, Ben R.
Ernst, Michael D.
author_facet Schesch, Benedikt
Featherman, Ryan
Yang, Kenneth J.
Roberts, Ben R.
Ernst, Michael D.
contents 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 out-performs all previous tools under most assumptions. It handles the most common merge scenarios in practice.
format Preprint
id arxiv_https___arxiv_org_abs_2410_09934
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Evaluation of Version Control Merge Tools
Schesch, Benedikt
Featherman, Ryan
Yang, Kenneth J.
Roberts, Ben R.
Ernst, Michael D.
Software Engineering
D.2
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 out-performs all previous tools under most assumptions. It handles the most common merge scenarios in practice.
title Evaluation of Version Control Merge Tools
topic Software Engineering
D.2
url https://arxiv.org/abs/2410.09934