SemanticDiff design Reactions

Most version control systems rely on using and understanding the changes between versions of artifacts - often referred to as diffs from the command that can produce them in Unix. Good diff (and merge) algorithms are around for text and binary files. The trouble with these diffs is that they are rather dumb. All they do is look at the two artifact versions and generate a simple way of getting from one to another.

A semantic diff would understand the purpose of the change, rather than just the effect.

For example, lets imagine I make a change to a class by executing an Extract Method refactoring in a tool and that's my only change between versions. With current tools they see the change in the program text, but they don't know that I did a refactoring. As a result when I examine the diff between the two versions it can show me the changes, but it can't do it in such a way that highlights the refactoring. This also can make merges more awkward than it might if it actually knew what I was doing.

(There may be a generally accepted term for this, if so please let me know.)


Links
home
bliki
feed 
Translations
Japanese
Spanish
Korean
Chinese
Thai
Categories
agile
design
dsl
leisure
refactoring
ruby
thoughtWorks
tools
uml
writing
Blog Roll
ThoughtBlogs
TW Alumni
Nicholas Carr
Steve Cook
Brian Foote
Simon Harris
Gregor Hohpe
/\ndy Hunt
Ralph Johnson
Patrick Logan
David Ing
Brian Marick
Jeremy Miller
Jimmy Nilsson
Samuel Pepys
Keith Ray
Johanna Rothman
Kathy Sierra
Dave Thomas