README.md

Paparazzi

Paparazzi is a Ruby gem for making incremental snapshot rsync backups of a directory, maintaining
hourly, daily, weekly, monthy, and yearly snapshots of directory state and files without consuming
much more drive space than a single copy would (depending on how frequently existing files change).

Only changed or new files are copied to the new snapshot. Hard links are created in the new snapshot
to previously existing unchanged files, allowing for frequent backups to be made of very large
directories (see 'How it works' below). Older snapshots maintain versions of files as they existed
at the time that snapshot was made.

Paparazzi automatically purges out old snapshots, and allows you to define how many copies at each
interval to keep.

Supported Operating Systems

Paparazzi is developed and tested on Ubuntu Linux and should work fine on all other flavors. As of version 0.1.1, all
tests reportedly passed on Mac OSX, and it is expected that Paparazzi will probably run very well in that environment
(although it is not actively tested, so run at your own risk).

It is highly unlikely that Paparazzi will run on an MS Windows based machine without a whole lot of TLC by the user,
if it runs at all. At a minimum, the user will need to get rsync installed on the machine, possibly through cygwin,
but this is not supported at all by the author and users are entirely on their own.

How it works.

Paparazzi uses rsync's ability to make hard links to files that haven't changed from previous
backups. So, even though multiple incremental versions of the entire directory are kept, only a single
copy of unique files are kept, with multiple hard links in separate snapshots pointing to the same
file.

This gem owes it's existance to Mike Rubel's excellent write-up
Easy Automated Snapshot-Style Backups with Linux and Rsync.
If you're not sure what "hard links" are or are confused how multiple snapshot versions of a
directory can be made without taking up much more space than a single copy, then read his post.