Well, diff has a --no-dereference option for not following symlinks, and patch has a --follow-symlinks option that will replace symlinks with patched files. What else do you have in mind?
It's unfortunate that diff doesn't support git-style patches; this would solve such ambiguities. Andreas
