I've written a backup system using rsync's ability to generate "diff"
files using batch file mode. It works like this:

1. We take a backup of the live system and store that
2. We generate a diff batch file against an older copy
3. We update the older copy to be identical to the current copy

In this way, each day we generate a batch file that lets us step back
one day. The diffs themselves, compressed with gzip, and extremely
space efficient. We can step back potentially hundreds of days, though
it seems to throw errors sometimes when backing up Windows boxes, which
I haven't tracked down yet.

But to be honest, soon you can save yourself a lot of hassle by simply
using ZFS and taking snapshots. It'll be faster, and with compression
very space efficient.