Structure-oriented merging of revisions of software documents
SCM '91 Proceedings of the 3rd international workshop on Software configuration management
Identifying syntactic differences between two programs
Software—Practice & Experience
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Some MAX SNP-hard results concerning unordered labeled trees
Information Processing Letters
Software merge: semantics of combining changes to programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A State-of-the-Art Survey on Software Merging
IEEE Transactions on Software Engineering
Semantic Diff: A Tool for Summarizing the Effects of Modifications
ICSM '94 Proceedings of the International Conference on Software Maintenance
Selected papers from the ICSE SCM-4 and SCM-5 Workshops, on Software Configuration Management
A Survey of Longest Common Subsequence Algorithms
SPIRE '00 Proceedings of the Seventh International Symposium on String Processing Information Retrieval (SPIRE'00)
Extensible Language-Aware Merging
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
A generic approach to supporting diagram differencing and merging for collaborative design
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Refactoring-Aware Configuration Management for Object-Oriented Programs
ICSE '07 Proceedings of the 29th international conference on Software Engineering
JDiff: A differencing technique and tool for object-oriented programs
Automated Software Engineering
Difference computation of large models
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Operation-based conflict detection and resolution
CVSM '09 Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models
Conflict detection for model versioning based on graph modifications
ICGT'10 Proceedings of the 5th international conference on Graph transformations
Semistructured merge: rethinking merge in revision control systems
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
CDDiff: semantic differencing for class diagrams
Proceedings of the 25th European conference on Object-oriented programming
Merging models with the epsilon merging language (EML)
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
The evolution of mobile apps: an exploratory study
Proceedings of the 2013 International Workshop on Software Development Lifecycle for Mobile
Hi-index | 0.00 |
Software-merging techniques face the challenge of finding a balance between precision and performance. In practice, developers use unstructured-merge (i.e., line-based) tools, which are fast but imprecise. In academia, many approaches incorporate information on the structure of the artifacts being merged. While this increases precision in conflict detection and resolution, it can induce severe performance penalties. Striving for a proper balance between precision and performance, we propose a structured-merge approach with auto-tuning. In a nutshell, we tune the merge process on-line by switching between unstructured and structured merge, depending on the presence of conflicts. We implemented a corresponding merge tool for Java, called JDime. Our experiments with 8 real-world Java projects, involving 72 merge scenarios with over 17 million lines of code, demonstrate that our approach indeed hits a sweet spot: While largely maintaining a precision that is superior to the one of unstructured merge, structured merge with auto-tuning is up to 12 times faster than purely structured merge, 5 times on average.