TimeVault is a simple front-end for making snapshots of a set of directories.
Snapshots are protected from accidental deletion or modification since they are read-only by default. The super-user can delete intermediate snapshots to save space, but files and directories that existed before or after the deletion will still be accessible.
What is a Snapshot?
A snapshot is a copy of a directory at a certain point in time. Snapshots don't use space for the files that haven't changed but instead simply increment the link count for them. On Linux, when a file is deleted, the link count is decremented, but it isn't actually removed until the link count hits zero.
Only files are hard-linked this way. Directories have to be recreated for technical reasons (since a hard-link is actually the file it points to, you would find yourself in a completely different path if directories were hard-linked).