RCS—a system for version control
Software—Practice & Experience
Simple fast algorithms for the editing distance between trees and related problems
SIAM Journal on Computing
Identifying the semantic and textual differences between two versions of a program
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Structure-oriented merging of revisions of software documents
SCM '91 Proceedings of the 3rd international workshop on Software configuration management
SDE 5 Proceedings of the fifth ACM SIGSOFT symposium on Software development environments
Configuration management with logical structures
Proceedings of the 18th international conference on Software engineering
Change detection in hierarchically structured information
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Unified versioning through feature logic
ACM Transactions on Software Engineering and Methodology (TOSEM)
Flexible conflict detection and management in collaborative applications
Proceedings of the 10th annual ACM symposium on User interface software and technology
Version models for software configuration management
ACM Computing Surveys (CSUR)
Linux Journal
The string-to-string correction problem with block moves
ACM Transactions on Computer Systems (TOCS)
A fast algorithm for computing longest common subsequences
Communications of the ACM
Supporting aggregation in fine grained software configuration management
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
ESEC '89 Proceedings of the 2nd European Software Engineering Conference
Fine Grained Version Control of Configurations in COOP/Orm
ICSE '96 Proceedings of the SCM-6 Workshop on System Configuration Management
The Unified Extensional Versioning Model
SCM-9 Proceedings of the 9th International Symposium on System Configuration Management
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Fine-Grained Version and Confguration Model in Analysis and Design
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
Dex: A Semantic-Graph Differencing Tool for Studying Changes in Large Code Bases
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Supporting Source Code Difference Analysis
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
An infrastructure for development of object-oriented, multi-level configuration management services
Proceedings of the 27th international conference on Software engineering
A survey on tree edit distance and related problems
Theoretical Computer Science
Detecting similar Java classes using tree algorithms
Proceedings of the 2006 international workshop on Mining software repositories
JDiff: A differencing technique and tool for object-oriented programs
Automated Software Engineering
Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction
IEEE Transactions on Software Engineering
Accurate and Efficient Structural Characteristic Feature Extraction for Clone Detection
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
Ldiff: An enhanced line differencing tool
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Refactoring-aware versioning in Eclipse
Electronic Notes in Theoretical Computer Science (ENTCS)
Clone-Aware Configuration Management
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
An approach to software evolution based on semantic change
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Detection of recurring software vulnerabilities
Proceedings of the IEEE/ACM international conference on Automated software engineering
Hi-index | 0.00 |
Existing version control systems are often based on text line-oriented models for change representation, which do not facilitate software developers in understanding code evolution. Other advanced change representation models that encompass more program semantics and structures are still not quite practical due to their high computational complexity. This paper presents OperV, a novel operation-based version control model that is able to support both coarse and fine levels of granularity in program source code. In OperV, a software system is represented by a project tree whose nodes represent all program entities, such as packages, classes, methods, etc. The changes of the system are represented via edit operations on the tree. OperV also provides the algorithms to differ, store, and retrieve the versions of such entities. These algorithms are based on the mapping of the nodes between versions of the project tree. This mapping technique uses 1) divide-and-conquer technique to map coarse- and fine-grained entities separately, 2) unchanged text regions to map unchanged leaf nodes, and 3) structure-based similarity of the sub-trees to map their root nodes bottom-up and then top-down. The empirical evaluation of OperV has shown that it is scalable, efficient, and could be useful in understanding program evolution.