Алексей Махоткин

домашняя страница

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).