This is one of those things that seems like a good idea, but frequently
ends up short. Part of the problem is that "whenever you modify a file"
is ill-defined, or rather, if you were to take the literal meaning of it
you'd end up with an unmanageable number of revisions.
Furthermore, it turns out that often relationships between files are
more important.
Thus, in the end it turns out that this stuff is better handled by
explicit version-control systems (which require explicit operations to
manage revisions) and atomic snapshots (for backup.)
-hpa
-