ComputingComputer ScienceDesign AutomationSoftware EngineeringSystems ProgrammingPatch AnalysisSoftware ConstructionSoftware MaintenanceSoftware ReuseEmpirical EvaluationPatch AutomationPatch TrackingSoftware Patch AnalysisSource Code Evolution
Forking projects provides a straightforward method for developers to reuse existing source code and tailor it to their own application scenarios, which can significantly reduce developers' burden. However, this process makes forked projects (upstream projects and their forks) share the same defects on reused code as well. With the independent development of forked projects, some defects can only be repaired in one of them, where the patches need to be ported to others as well. Manually tracking all such activities among them is hard. Previous studies reveal that porting patches across forked projects is imperative and call research in this direction. Targeting at this problem, we conducted an empirical study to analyze the characteristics of patches in forked projects. We found that 20.5% patches need to be ported among all analyzed patches, which is a non-negligible portion. Among all those patches that need to be ported, 73.2% can be easily ported by simple syntactic code transformations. However, it is still challenging for other 26.8% patches since the corresponding code has experienced different modifications in the forked projects. As a result, according to the insights from the study, we proposed a new approach, which aims to automatically identify and port patches across forked projects.
15
Jacek Śliwerski, Thomas Zimmermann, Andreas Zeller · ACM SIGSOFT Software Engineering Notes · 2005 · 803 citations
Jacek Śliwerski, Thomas Zimmermann, Andreas Zeller · 2005 · 385 citations
An Exploratory Study of Cloning in Industrial Software Product Lines
Yael Dubinsky, Julia Rubin, Thorsten Berger et al. · 2013 · 260 citations
Automated software transplantation
Earl T. Barr, Mark Harman, Yue Jia et al. · 2015 · 132 citations