{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,30]],"date-time":"2026-01-30T00:34:22Z","timestamp":1769733262465,"version":"3.49.0"},"reference-count":48,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2019,10,10]],"date-time":"2019-10-10T00:00:00Z","timestamp":1570665600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100012659","name":"National Natural Science Foundation of China","doi-asserted-by":"publisher","award":["61690200,61432020"],"award-info":[{"award-number":["61690200,61432020"]}],"id":[{"id":"10.13039\/501100012659","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100012166","name":"National Basic Research Program of China","doi-asserted-by":"crossref","award":["2015CB352201"],"award-info":[{"award-number":["2015CB352201"]}],"id":[{"id":"10.13039\/501100012166","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,10,10]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3360596","type":"journal-article","created":{"date-parts":[[2019,10,11]],"date-time":"2019-10-11T14:53:33Z","timestamp":1570805613000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":41,"title":["IntelliMerge: a refactoring-aware software merging technique"],"prefix":"10.1145","volume":"3","author":[{"given":"Bo","family":"Shen","sequence":"first","affiliation":[{"name":"Peking University, China"}]},{"given":"Wei","family":"Zhang","sequence":"additional","affiliation":[{"name":"Peking University, China"}]},{"given":"Haiyan","family":"Zhao","sequence":"additional","affiliation":[{"name":"Peking University, China"}]},{"given":"Guangtai","family":"Liang","sequence":"additional","affiliation":[{"name":"Huawei Technologies, China"}]},{"given":"Zhi","family":"Jin","sequence":"additional","affiliation":[{"name":"Peking University, China"}]},{"given":"Qianxiang","family":"Wang","sequence":"additional","affiliation":[{"name":"Huawei Technologies, China"}]}],"member":"320","published-online":{"date-parts":[[2019,10,10]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2017.12"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2661674"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2351676.2351694"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2025113.2025141"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1370152.1370157"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/201055.201056"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2393596.2393648"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3275430"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2025113.2025139"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/1090744.1090746"},{"key":"e_1_2_1_11_1","volume-title":"Software Configuration Management","author":"Buffenbarger Jim","unstructured":"Jim Buffenbarger . 1993. Syntactic software merging . In Software Configuration Management . Springer , 153\u2013172. Jim Buffenbarger. 1993. Syntactic software merging. In Software Configuration Management. Springer, 153\u2013172."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133883"},{"key":"e_1_2_1_13_1","volume-title":"A survey of refactoring detection techniques based on change history analysis. arXiv preprint arXiv:1808.02320","author":"Choi Eunjong","year":"2018","unstructured":"Eunjong Choi , Kenji Fujiwara , Norihiro Yoshida , and Shinpei Hayashi . 2018. A survey of refactoring detection techniques based on change history analysis. arXiv preprint arXiv:1808.02320 ( 2018 ). Eunjong Choi, Kenji Fujiwara, Norihiro Yoshida, and Shinpei Hayashi. 2018. A survey of refactoring detection techniques based on change history analysis. arXiv preprint arXiv:1808.02320 (2018)."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1218776.1218797"},{"key":"e_1_2_1_15_1","volume-title":"Refactoring-Aware Configuration Management for Object-Oriented Programs. In International Conference on Software Engineering.","author":"Dig Danny","unstructured":"Danny Dig , Kashif Manzoor , Ralph Johnson , and Tien N. Nguyen . 2007 . Refactoring-Aware Configuration Management for Object-Oriented Programs. In International Conference on Software Engineering. Danny Dig, Kashif Manzoor, Ralph Johnson, and Tien N. Nguyen. 2007. Refactoring-Aware Configuration Management for Object-Oriented Programs. In International Conference on Software Engineering."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2008.29"},{"key":"e_1_2_1_17_1","volume-title":"Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. ACM, 732\u2013733.","author":"Dig Danny","unstructured":"Danny Dig , Tien N Nguyen , Kashif Manzoor , and Ralph Johnson . 2006b. MolhadoRef: a refactoring-aware software configuration management tool . In Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. ACM, 732\u2013733. Danny Dig, Tien N Nguyen, Kashif Manzoor, and Ralph Johnson. 2006b. MolhadoRef: a refactoring-aware software configuration management tool. In Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. ACM, 732\u2013733."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3127404.3127447"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2245276.2245417"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSCWD.2017.8066690"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/581441.581453"},{"key":"e_1_2_1_22_1","first-page":"181","article-title":"Cdiff: A syntax directed differencer for C++ programs. In C++ Conference, Portland","volume":"1992","author":"Grass Judith E","year":"1992","unstructured":"Judith E Grass . 1992 . Cdiff: A syntax directed differencer for C++ programs. In C++ Conference, Portland , Oregon , 1992. 181 \u2013 193 . Judith E Grass. 1992. Cdiff: A syntax directed differencer for C++ programs. In C++ Conference, Portland, Oregon, 1992. 181\u2013193.","journal-title":"Oregon"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.5555\/2337223.2337264"},{"key":"e_1_2_1_24_1","first-page":"243","article-title":"Semantic Diff: A Tool for Summarizing the Effects of Modifications","volume":"94","author":"Jackson Daniel","year":"1994","unstructured":"Daniel Jackson , David A Ladd , 1994 . Semantic Diff: A Tool for Summarizing the Effects of Modifications .. In ICSM , Vol. 94. 243 \u2013 252 . Daniel Jackson, David A Ladd, et al. 1994. Semantic Diff: A Tool for Summarizing the Effects of Modifications.. In ICSM, Vol. 94. 243\u2013252.","journal-title":"ICSM"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/2486788.2486884"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1882291.1882353"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/11880240_16"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10606-018-9323-3"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10515-014-0151-5"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1030397.1030399"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/142868.143753"},{"key":"e_1_2_1_32_1","volume-title":"An Empirical Study of Refactorings in Merge Conflicts. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 151\u2013162","author":"Mahmoudi Mehran","year":"2019","unstructured":"Mehran Mahmoudi , Sarah Nadi , and Nikolaos Tsantalis . 2019 . Are Refactorings to Blame? An Empirical Study of Refactorings in Merge Conflicts. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 151\u2013162 . Mehran Mahmoudi, Sarah Nadi, and Nikolaos Tsantalis. 2019. Are Refactorings to Blame? An Empirical Study of Refactorings in Merge Conflicts. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 151\u2013162."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1101908.1101940"},{"key":"e_1_2_1_34_1","volume-title":"Marcio Oliveira Barros, and Andre Van Der Hoek.","author":"Lima Menezes Gleiph Ghiotto","year":"2018","unstructured":"Gleiph Ghiotto Lima Menezes , Leonardo Gresta Paulino Murta , Marcio Oliveira Barros, and Andre Van Der Hoek. 2018 . On the Nature of Merge Conflicts: a Study of 2,731 Open Source Java Projects Hosted by GitHub. IEEE Transactions on Software Engineering ( 2018). Gleiph Ghiotto Lima Menezes, Leonardo Gresta Paulino Murta, Marcio Oliveira Barros, and Andre Van Der Hoek. 2018. On the Nature of Merge Conflicts: a Study of 2,731 Open Source Java Projects Hosted by GitHub. IEEE Transactions on Software Engineering (2018)."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/646676.701982"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2002.1000449"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.1265817"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_23"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2005.6"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2015.02.008"},{"key":"e_1_2_1_41_1","volume-title":"International Summer School on Generative and Transformational Techniques in Software Engineering","author":"Segura Sergio","unstructured":"Sergio Segura , David Benavides , Antonio Ruiz-Cort\u00e9s , and Pablo Trinidad . 2007. Automated merging of feature models using graph transformations . In International Summer School on Generative and Transformational Techniques in Software Engineering . Springer , 489\u2013505. Sergio Segura, David Benavides, Antonio Ruiz-Cort\u00e9s, and Pablo Trinidad. 2007. Automated merging of feature models using graph transformations. In International Summer School on Generative and Transformational Techniques in Software Engineering. Springer, 489\u2013505."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950305"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2017.14"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3357766.3359536"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180206"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2002.1033025"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/111062.111071"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276536"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360596","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360596","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:22:59Z","timestamp":1750202579000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360596"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,10]]},"references-count":48,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2019,10,10]]}},"alternative-id":["10.1145\/3360596"],"URL":"https:\/\/doi.org\/10.1145\/3360596","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,10,10]]},"assertion":[{"value":"2019-10-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}