We report about recent research on document patching, originally published at the 48th International Conference on Software Engineering (ICSE 2026) Sc26. Our research investigates the effectiveness of commonly-used patchers, and proposes mpatch, a novel patcher that significantly increases patch automation and has the potential to considerably reduce the burden of manually fixing failed patches in practice. Patching is a fundamental software maintenance and evolution task enabling the automated propagation of changes across different software versions. Established and widely used language-agnostic patchers, such as GNU patch and Git cherry-pick, work on textual artifact representations (i. e., text files) and typically rely on line numbers and contexts (i. e., the adjacent, unchanged text fragments) to apply changes. This strategy often fails if source and target of a patch differ, provoking cumbersome manual effort. In this paper, we study the effectiveness of commonly-used patchers, and propose a novel technique that significantly increases patch automation. First, we curate and analyze a large dataset of more than 400 000 patch scenarios (i. e., cherry picks) from 5000 GitHub projects. Next, we examine the effectiveness of established patchers on the gathered patch scenarios. Third, we develop a novel language-agnostic patch technique, mpatch, that utilizes a source-to-target matching to determine suitable change locations. By comparing mpatch to other patchers, we find that it can correctly apply 44% more patches automatically than other language-agnostic patchers, while it also requires fewer manual fixes in cases that cannot be automated completely.
Schultheiß et al. (Thu,) studied this question.