The Impact of Structure on Software Merging: Semistructured versus Structured Merge
Merge conflicts often occur when developers concurrently change the same code artifacts. While state-of-practice unstructured merge tools (e.g git merge) try to automatically resolve merge conflicts based on textual similarity, semistructured and structured merge tools try to go further by exploiting the syntactic structure and semantics of the involved artifacts. Although there is evidence that semistructured merge has significant advantages over unstructured merge, and that structured merge reports significantly less conflicts than unstructured merge, it is unknown how semistructured merge compares with structured merge. To help developers decide which kind of tool to use, we compare semistructured and structured merge in an empirical study by reproducing more than 40,000 merge scenarios from more than 500 projects. In particular, we assess how often the two merge strategies report different results, we identify conflicts incorrectly reported by one but not by the other (false positives), and conflicts correctly reported by one but missed by the other (false negatives). Our results show that semistructured and structured merge differ on 24% of the scenarios with conflicts. Semistructured merge reports more false positives, whereas structured merge has more false negatives. Finally, we observe that adapting a semistructured merge tool to resolve a particular kind of conflict makes semistructured and structured merge even closer.
Thu 14 NovDisplayed time zone: Tijuana, Baja California change
16:00 - 17:40 | Untangling and MergingResearch Papers at Cortez 2&3 Chair(s): Iftekhar Ahmed University of California at Irvine, USA | ||
16:00 20mTalk | The Impact of Structure on Software Merging: Semistructured versus Structured Merge Research Papers Guilherme Cavalcanti Federal University of Pernambuco, Brazil, Paulo Borba Federal University of Pernambuco, Brazil, Georg Seibt University of Passau, Sven Apel Saarland University Pre-print | ||
16:20 20mTalk | Semistructured Merge in JavaScript Systems Research Papers Alberto Trindade Tavares Federal University of Pernambuco, Paulo Borba Federal University of Pernambuco, Brazil, Guilherme Cavalcanti Federal University of Pernambuco, Brazil, Sergio Soares Federal University of Pernambuco Pre-print | ||
16:40 20mTalk | CLCDSA: Cross Language Code Clone Detection using Syntactical Features and API Documentation Research Papers Kawser Nafi University of Saskatchewan, Tonny Shekha Kar University of Saskatchewan, Canada, Banani Roy University of Saskatchewan, Chanchal K. Roy University of Saskatchewan, Kevin Schneider University of Saskatchewan | ||
17:00 20mTalk | B2SFinder: Detecting Open-Source Software Reuse in COTS Software Research Papers Muyue Feng Institute of Information Engineering, Chinese Academy of Sciences, Zimu Yuan Institute of Information Engineering, Chinese Academy of Sciences, Feng Li Institute of Computing Technology at Chinese Academy of Sciences, China, Gu Ban Institute of Information Engineering, Chinese Academy of Sciences, Yang Xiao Institute of Information Engineering, Chinese Academy of Sciences & School of Cyber Security, University of Chinese Academy of Sciences, Shiyang Wang Institute of Information Engineering, Chinese Academy of Sciences, Qian Tang Institute of Information Engineering, Chinese Academy of Sciences, He Su Institute of Information Engineering, Chinese Academy of Sciences, Chendong Yu University of Chinese Academy of Sciences, Jiahuan Xu Institute of Information Engineering, Chinese Academy of Sciences, Aihua Piao Institute of Information Engineering, Chinese Academy of Sciences, Jingling Xue UNSW Sydney, Wei Huo Institute of Information Engineering, Chinese Academy of Sciences | ||
17:20 20mTalk | CoRA: Decomposing and Describing Tangled Code Changes for Reviewer Research Papers Min Wang Peking University, Zeqi Lin Microsoft Research, China, Yanzhen Zou Peking University, Bing Xie Peking University |