I'm doing some testing to learn how to utilise rdiff-backup. I'm hoping
some one can help answer a few questions.
I have created two directories. One is a directory called root where I
have created two files. I back those files up to a directory called
backup.
When I run "rdiff-backup -r now backup root" it tells me
"Fatal Error: Restore target root already exists, specify --force to
overwrite."
If I add --force it continues to restore all the files. The problem is I
don't need to restore all the files if some of the files haven't changed.
I only want it to restore files that I have changed. Restoring even the
files that haven't changed increases the time it takes to revert to an
older backup.
My goal is to be able rdiff-backup on a 'root partition' (root) and then
restore the files from a backup in the event my system crashes during an
apt-get upgrade.
I am working with an already slow medium. I also know that rdiff-backup is
not the fastest solution. It is probably the best solution though. I need
to 'undo' changes relatively frequently too so this is of a great concern
to me if it takes a long time to do a restore.

The USP of rdiff-backup is that it keeps multiple previous versions of a
dataset. But for your purpose I think rsync would be easier - and it can
do the type of restore that you seek. Alternatively if you had LVM on
your root partition and a newish Linux kernel it might be possible to
take an LVM snapshot and then revert back to it if your system crashes -
some info here:
http://www.thegoldfish.org/2011/09/reverting-to-a-previous-snapshot-using-linux-lvm/.