Master Thesis Seminar:Graphical visualization if Refactoring-aware versioning in Eclipse

Date: December 03, 2004 (Friday) at 10:15

By Miguel Ewezon

As more and more people have become aware of refactoring and the
advantages of this concept --- much thanks to the success of
eXtreme Programming [XP] --- the pressure on the Software
Configuration Management tools has increased. A refactoring is a
change made to already existing code, aimed at improving the
readability and ease of understanding of the code, while
preserving its functionality and correctness. The refactoring
rename guarantees that when renaming a field, also all
uses of this field will be renamed. That is, instead of only one
change, there is suddenly a chain of dependent changes. When
adding a version control tool to this scenario, the ease of
understanding a refactoring is somewhat lost. A version control
tool saves old versions of a document and allows to later fetch
and compare them. It also makes it easier to simultaneously work
with the same document by controlling that other developers
changes not are overwritten without confirmation. However,
unfortunately there is currently no version control tool on the
market that directly supports refactorings. Their major drawback
is that they do not grasp a refactoring as a set of connected
changes, or even better as one change. In a diff situation, the
declaration and all its uses will be visualized as independent
changes and that leads to cluttering of the document. In a merge
situation, if the same field is renamed in both branches, the
version control tool will report as many conflicts as there are
uses of the field plus one (the declaration). To remedy this, this
master thesis has investigated the possibility to better visualize
refactorings when comparing and merging. Analysis has been carried
out and a prototype has been implemented. This --- of course ---
requires support from the underlying machinery. The repository
provider which this thesis is based on saves a refactoring as
coupled changes. This enables graphical visualization on a
completely new level.

Room: E:2116

Last modified Dec 9, 2011 12:59 pm