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
I found the problem, it was because Duplicati was trying to read the size of the file AFTER it was moved.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1166 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
Now also stores the filename+size of signature/content files to ensure that the parsed filenames match the expected ones.
The filesize and filenames are used to verify that the remote file is complete, without downloading it.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@716 59da171f-624f-0410-aa54-27559c288bec
This commit includes an option to create an unencrypted verification file.
There is now a check to see if all volumes mentioned in the manifest exists,
before performing backup/restore operations.
This check is also performed on cleanup.
There is now a check that prevents auto-cleanup from removing more than
2 orphan files.
If a delete-older-than or delete-all-but-n-full is interrupted, the leftover
files will not be auto-deleted but must be deleted with the cleanup command,
which allows the user to see what files are delete.
Update issue #360
Status: Fixed
There is now a complete verification chain, where the manifest hashes are verified backwards.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@711 59da171f-624f-0410-aa54-27559c288bec
Changed the non-streaming file-backend interface to use sytem copy calls rather than
manual stream copy.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@654 59da171f-624f-0410-aa54-27559c288bec
Previously some backends autocreated a missing folder, and some threw an exception.
The new standard is that all backends throw the FolderMissingException on all access (except delete).
This means that the Test() and List() methods are now the same for all stock backends.
Third-party applications that use the backends should implement custom logic to auto-create the folders,
when the FolderMissingException is encountered.
Duplicati auto-creates missing folders, but this can be toggled through the new flag --disable-autocreate-folders.
In case the auto-create fails to detect a missing folder, there is now a "create-folder" action in the commandline version.
Update issue #102
Status: Fixed
The IBackend_v2 interface has the CreateFolder and Test methods.
The CreateFolder is exposed to the commandline interface with the action create-folder.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@558 59da171f-624f-0410-aa54-27559c288bec
Added name support in GUI and commandline version.
When restoring from commandline, subfolders will now be named like the source folders, if only one source folder is given.
When restoring from GUI, the names will be suggested like in the commandline.
It is no longer required that the unused folders exists when restoring a multi-source backup from the GUI.
Added size tooltips to the restore GUI window with the list of backup chains.
Now correctly deletes old signature cache files, even if they use the old names.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@542 59da171f-624f-0410-aa54-27559c288bec
Update issue #235
I have now added a simple version of the collection-status command,
which shows Type, Time, Volume count and Size for each backup set,
with the incrementals listed under the full's they belong to.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@540 59da171f-624f-0410-aa54-27559c288bec
Fixed a protential race condition with warning messages and file counts (cosmetic only) when using async transfers.
Spelling correction, Seperator -> Separator.
Changed so a restore operation can also supply advanced options.
Changed the format of timestamps in filenames to follow the Duplicity convention, which removes the need for --time-separator and --use-short-filenames.
Moved the URL utility into Core, to avoid compilation errors with Monodevelop.
Reorganized the runner to better support the LiveControls on all operations rather than only for backup/restore.
Update issue #210
Status: Fixed
I have now changed the time format to follow the Duplicity naming convention.
This means that all filenames are now generated with the time set as "yyyyMMddTHHmmssZ".
This format is more portable across all platforms, and easily sortable/readable.
The drawback is that the Z indicates UTC time, so if one looks at the filenames,
the times are not local. The motivation for this is to avoid trouble
with daylight savings time offsets.
There is full backwards compatibility as long as backups have not used more than
one character for --time-separator (only possible via commandline).
This new format means that the options --time-separator and --use-short-filenames
are now deprecated and removed from the user interface. It is possible to
access them from the advanced options page, along with the --use-old-filenames option.
If anyone needs these options for some reason, let me know, otherwise they will be removed
in a later version.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@523 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
Added the first generic module, a password request module.
The motivation for this is to allow the creation of custom passphrase modules.
A simple model would be to add a GUI input dialog.
A more sophisticated version may read a passphrase to an encrypted file which contains the real passphrase or similar.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@519 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
The backup can now proceed with a broken signature file.
A restore operation is not affected by broken signature files either,
although the restore will include previously deleted files,
if the signatures are damaged.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@492 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
The code to support this was already in place, but did
not work because Application.Exit() had been invoked,
making all messageboxes return Cancel without showing.
I also improved the logic a bit so a cancel does
not invoke the cleanup afterwards, making the exit
procedure faster.
I also added checks for the stop command to the
code that fetches the signature files, to make
the application respond faster to the stop command.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@490 59da171f-624f-0410-aa54-27559c288bec
Status: Fixed
I have fixed a number of UI issues when using async uploads.
For one, the pause/stop features now work.
If the progress is paused, a upload progressbar will be displayed,
so the progress does not appear to hang.
When the backup is complete, the remaining uploads
are now done as normal, resulting in a normal UI display with progress.
I have also reserved some space on the progress bar for cleanup,
and inserted a status message indicating that the cleanup is in progress.
The async now works so well, that I think it should be on by default.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@482 59da171f-624f-0410-aa54-27559c288bec
Also fixed a bug with the "allow-full-removal" option.
Update issue 110
I have now added a limit to the number of generated volumes, and as described, it is 2 by default.
I have also added support for setting a custom folder where the volumes are placed in. They are placed in the temp folder by default.
I re-read the comments on this issue, and I can see that I misread the statements from Baris.Eris.
This limit does not prevent any volumes from being uploaded (you can use the --totalsize option for that),
it just pauses the volume generation when there are already two or more volumes waiting to be uploaded.
As soon as a volume is uploaded, the program continues. The purpose of this is not to limit the data being
uploaded, but rather to prevent spamming the disk with hundreds of volumes.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@476 59da171f-624f-0410-aa54-27559c288bec
Added snapshot support using either VSS (win xp/vista/7) or LVM (linux).
Using the snapshot feature requires administrative/root privileges, and is toggled by the "snapshot-policy" option (by commandline or in advanced settings).
Also improved the validation of options to not show incorrect warnings.
This fixes issue #233.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@461 59da171f-624f-0410-aa54-27559c288bec
This was based on the idea that the interfaces should remain static.
I hope this change is enough to ensure stable interfaces until release 1.2.
Overview of changes:
Moved all interfaces into the same dll.
Encryption and compression is now plugable modules, just as the backends.
Encryption/compression can now register an UI.
Encryption now uses AESCrypt as a default.
GPG does not default to using the --armor option.
Added support for generic modules, but none are written yet.
Added support for plugable settings pages in the "Options" dialog.
Fixed issue #148.
Duplicati now uses AESCrypt as the default encryption format.
Fixed issue #199.
GPG now supports custom commandline options.
Fixed issue #207.
Encryption modules are now plugable.
Fixed issue #118.
S3 credentials are now stored.
Fixed issue #151.
Backends can now register system wide options.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@427 59da171f-624f-0410-aa54-27559c288bec
Added better progress text when restoring.
Added progress reporting when restoring.
Added progress bar for download, if the backend supports reporting sizes.
Also contains a fix for issue #143.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@334 59da171f-624f-0410-aa54-27559c288bec
Fixed issue #69.
Fixed issue #142.
I finally got the time to complete the pause and throttle options.
It required a minor rewrite, so I also fixed issue #142.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@310 59da171f-624f-0410-aa54-27559c288bec