Implemented delete-all-but-n and delete-older-than.
Implemented compacting.
Added the --dry-run option, which currently works for deleting and compacting, but not restore or backup.
Added output to console for use with dry-run, and added option to redirect this to the log for use in service mode.
Rewrote the backup and restore to work within a transaction as that speeds things up a lot.
Rewrote the backup procedure to generate the file list from the database, instead of on-the-fly as that is more efficient.
Re-arranged the database to use less storage on large sets of unchanged files.
Still needs a work over in terms of error handling, progress reporting, warning output, refactoring etc.
Also misses the volume reuse/reclaim algorithms.
But it passes the unit tests now, with and without a local database.
git-svn-id: https://duplicati.googlecode.com/svn/sandboxes/Kenneth/ForestHash@1526 59da171f-624f-0410-aa54-27559c288bec
The number of methods required by the ICompression interface is now reduce and all handling of path conversion and text encoding is now done in the CompressionWrapper class. This should make it easier to implement a new compression module, and reduce the number of errors that occur because of filename/encoding issues.
This commit also contains a fix for reporting a sane error message if the compression module is not found/loaded.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1417 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
The problem is that the the file-based backend returns "Directory not found" when asking for the not-yet-mounted folder.
Duplicati assumed that this error means that the folder will be created later, and thus returned an empty list,
as the folder would be empty when created. This means that the retry logic was not used.
Backing up to an empty folder will then result in a full backup being made.
But once the files started uploading, the folder is there and the folder is not created, but it is still a full backup.
This commit changes the logic a bit, so the list operation will not return until successful and a missing folder will be created during the list operation.
This ensures that the backup does not start before there has been a successful listing of the folder. If it fails, there is the normal retry delay, which should be enough to ensure that the folder is re-mounted. There may be warnings in the log, that the auto create failed. I have removed the logic that will auto create the folder during upload, as it should no longer be possible to get to the upload stage without verifying that the folder exists.
I have also changed the logic of the --disable-autocreate-folder option, so default value is "false" if it is a backup, and "true" for any other operation, so simply issuing a "list" or "cleanup" will not create folders (it did not do that before either).
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1259 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
Duplicati now defaults to not upload a backup if nothing has changed.
This is indicated by a light-green check mark in the status window.
The option --upload-unchanged-backups can be set to revert to the previous way of working.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@958 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
There is now a delete transaction file being written, which should prevent cases where a large number of orphan files are detected.
If a large number of orphan files are detected, this should now be considered a real error.
I chose not to put in the cleanup button, because it would take too long for me to fit it in there, and I would rather focus on getting 2.0 ready, which will have a new UI anyway.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@957 59da171f-624f-0410-aa54-27559c288bec
Update issue #484
Status: Fixed
There is now a detection for situations where a manifest is missed, but signature/content files are uploaded.
This should fix all errors with a message like "N volumes found but the manifest indicates X" where N-X <= 2.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@942 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
Thanks to Livio, this is now fixed and can be toggled with the --allow-sleep command.
It will be included in the next preview release.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@807 59da171f-624f-0410-aa54-27559c288bec