MolhadoRef: A refactoring-aware version control system
Dan Moore writes about MolhadoRef.
MolhadoRef is a research project developed by Danny Dig, which implements a version control system where refactoring is first-class concept. That is, when you use well-known refactoring techniques in Java, such as “rename package, rename class, rename method, move class, move method, and changing the method signature”, MolhadoRef detects that you’re doing just that, and records this refactoring information. Later, during merging, it tries to use refactoring history to resolve merging conflicts in a more intelligent way. Usual text-level conflict resolution is left as a fall-back. Dig’s experiments show radical decrease in number of merging conflicts when using this merge strategy (see “Evaluation: effectiveness”). Also, you can see the history of code objects, such as methods and classes: how they evolved over time.
See Dan Moore’s post on MolhadoRef for notes from Dig’s talk “Refactoring-Aware Software Merging and Version Control for Object-Oriented Programs”.
P.S.: About two years ago during the discussion of early GIT development, Linus Torvalds outlined his idea about tracking the movement of code objects, as opposed to simply tracking file renames and line changes.
See the discussion at Linus Torvalds: Re: Merge with git-pasky II
(Message-ID: Pine.LNX.4.58.0504141728590.7211@ppc970.osdl.org).
(Message-ID: Pine.LNX.4.58.0504141728590.7211@ppc970.osdl.org).
Recent posts on similar topics
- SCM systems comparison: a better frontend - January 26th, 2008
- AccuRev streams vs branches - January 14th, 2008
- Karl Fogel, Ben Collins-Sussman, on distributed version control - October 11th, 2007
- Mark Shuttleworth on renaming and merging - October 7th, 2007
- Ian Clatworthy: "The Future Is Adaptive" - October 6th, 2007