In modern software development, developers rely on version control systems like Git to collaborate in the branch-based development workflow. One downside of this workflow is the conflicts occurred when merging contributions from different developers: these conflicts are tedious and error-prone to be correctly resolved, reducing the efficiency of collaboration and introducing potential bugs. The situation becomes even worse, with the popularity of refactorings in software development and evolution, because current merging tools (usually based on the text or tree structures of source code) are unaware of refactorings. In this paper, we present IntelliMerge, a graph-based refactoring-aware merging algorithm for Java programs. We explicitly enhance this algorithm's ability in detecting and resolving refactoring-related conflicts. Through the evaluation on 1,070 merge scenarios from 10 popular open-source Java projects, we show that IntelliMerge reduces the number of merge conflicts by 58.90% comparing with GitMerge (the prevalent unstructured merging tool) and 11.84% comparing with jFSTMerge (the state-of-the-art semi-structured merging tool) without sacrificing the auto-merging precision (88.48%) and recall (90.22%). Besides, the evaluation of performance shows that IntelliMerge takes 539 milliseconds to process one merge scenario on the median, which indicates its feasibility in real-world applications.
Fri 25 OctDisplayed time zone: Beirut change
11:00 - 12:30 | Repair & TransformationOOPSLA at Templars Chair(s): Bor-Yuh Evan Chang University of Colorado Boulder | Amazon | ||
11:00 22mTalk | Detecting Nondeterministic Payment Bugs in Ethereum Smart Contracts OOPSLA Shuai Wang Hong Kong University of Science and Technology, Chengyu Zhang East China Normal University, Zhendong Su ETH Zurich DOI | ||
11:22 22mTalk | Automatic Repair of Regular Expressions OOPSLA Rong Pan University of Texas at Austin, Qinheping Hu University of Wisconsin, Madison, Gaowei Xu University of Wisconsin Madison, Loris D'Antoni University of Wisconsin Madison DOI Pre-print | ||
11:45 22mTalk | Getafix: Learning to Fix Bugs Automatically OOPSLA Johannes Bader Facebook, Andrew Scott Facebook, Michael Pradel University of Stuttgart, Satish Chandra Facebook DOI Pre-print | ||
12:07 22mTalk | IntelliMerge: A Refactoring-Aware Software Merging Technique OOPSLA Bo Shen Peking University, Wei Zhang Peking University, Haiyan Zhao Peking University, Guangtai Liang Huawei Technologies Co. Ltd, Zhi Jin Peking University, Qianxiang Wang Huawei Technologies Co. Ltd DOI |