Darcs could grow a large set of semantic patch types, especially if they
can be implemented as plugins. It would be very useful for some types to
be able to detect themselves happening, and suggest a specific type of
patch.
e.g. If I rename all occurrences of 'foo' to 'bar' with my text editor,
the 'replace' patch type could detect that a replace has occurred, and
suggest that a replace be recorded rather than line diffs.
e.g. If I rename a file by 'mv a/foo.c b/bar.c; darcs rm a/foo.c; darcs
add b/bar.c', darcs could detect that bar.c has the same contents as
foo.c used to, and suggest a move patch instead of removing and
re-adding every line. (This kind of usage is not stupid - the 3 steps
possibly happened over a long period of time.)
|