Now every so often (default is 20 seconds, the --checkpoint-interval option controls it) rdiff-backup checkpoints by dumping its state to temporary files in the rdiff-backup-data directory.
If rdiff-backup is rerun with the same destination directory, it can either try to resume the previous backup or at least clean things up so the archive is consistent and accurate.
Added new options --resume, --no-resume, and --resume-interval, which control when rdiff-backup tries to resume a previous failed backup.
Fixed a bug with the --exclude-device-files option which caused the option to be ignored when the source directory was remote.
By default, if rdiff-backup encounters a certain kind of IOError (currently types 26 and 5) while trying to access a file, it logs the error, skips the file, and tries to continue.
If settings requiring an integer argument (like -v or --checkpoint-interval) are given a bad (non-integer) argument, fail with better explanation.
Fixed annoying logging bug.
Now no matter which computer a logging message originates on, it should be routed to the process which is writing to the logging file, and written correctly.
However, logging messages about network traffic will not be routed, as this will generate more traffic and lead to an infinite regress.
When calling rdiff, uses popen2.Popen3 and os.spawnvp instead of os.popen and os.system.
This should make rdiff-backup more secure.
Thanks to Jamie Heilman for the suggestion.
Instead of calling the external shell command 'stat', rdiff-backup uses os.lstat().st_rdev to determine a device file's major and minor numbers.
The new method should be more portable.
Thanks to Jamie Heilman for the suggestion.
All the file operations were examined and tweaked to try to minimize/eliminate the chance of leaving the backup directory in an inconsistent state.
Upon catchable kinds of errors, try to checkpoint before exiting so later rdiff-backup processes have more information to work with.
At the suggestion of Jason Piterak, added a --windows-time-format option so rdiff-backup will (perhaps) work under MS windows NT.