ICSE 2026 Paper Accepted
We are happy to announce that our paper titled Decades of GNU Patch and Git Cherry-Pick: Can We Do Better? by Alexander Schultheiß, Alexander Boll, Paul Maximilian Bittner, Sandra Greiner, Thomas Thüm, and Timo Kehrer has been accepted to the IEEE/ACM International Conference on Software Engineering (ICSE) 2026.
Short Summary
We investigated the prominence of patching in public repositories and the effectiveness of patchers in complex patch scenarios.
We observed that existing patchers struggle to identify the correct change locations when applying patches.
This causes an overall low rate of automation of only 16% to 41% of patches.
To address these shortcomings, we introduced mpatch
, a novel language-agnostic patching technique with a match-based strategy that can automatically apply approximately 60% of patches without errors.
mpatch
: a novel match-based patcher
During patching, mpatch
first computes a matching between the source version, from which a patch was extracted, and the target version, to which the patch should be applied.
This matching yields correspondences between the artifacts of the source and target version.
Then, mpatch
analyzes these correspondences when applying the patch to the target version, and thereby identifies the correct locations for changes.
Potential Impact
We investigated the potential impact of mpatch
on patching in practice.
To this end, we mined a dataset of over 100,000 complex patch scenarios from 5,000 open source repositories on GitHub.
Of these scenarios, mpatch
can correctly and automatically apply 17k patches more than the best current patcher.
This directly impacts projects that heavily rely on patching, such as ceph, in which we found more than 7,000 complex patches, of which mpatch
applies 1,800 more patches automatically.
Our design and implementation of a match-based patcher demonstrated superior effectiveness compared to a family of tools that have evolved and matured over almost 40 years.
Using its match-based approach, mpatch
achieves a significantly higher automation rate than the best current patcher in the patch scenarios studied.
This underscores the importance of re-evaluating even the most established methods and techniques in our more than vibrant research area of software engineering.