|Department of Electrical and Computer Engineering|
We have developed structural differencing tools to show changes between two arbitrary versions of
The compared versions are not necessarily predecessors or successors of each other. The tools are based on the Versioned Unit Slot Information (VUSI) mechanism. VUSI attaches versioned slots of type ``boolean'' to nodes in a tree or a directed graph to track if there is a change in one or many attributes (including ``children'' and ``parent'') of a node between any two arbitrary versions. Their values will be changed from ``false'' to ``true'' to signify a change.
Figure 1. Structural comparison for a logical structure
Figure 1 shows the changes in the document-directory structure of
a project between v4 and v7. The icon next to a
Figure 2 shows structural changes in a Java program. A small icon
is attached to a document node icon, showing its changing status from
version v7 to version v8: either it has been modified
(a tree icon), inserted (an ``i'' icon), or deleted (an eraser icon).
For example, the methods ``getRoot'' and ``setRoot'' have been deleted
Figure 2. Structural comparison for a Java program
Figure 3. Line-oriented differencing when users select a text node
Figure 4. Structural changes in a HTML document