Commit Graph
56 Commits
Author SHA1 Message Date
Kenneth Skovhede a0ce141be9 Implemented a message sink so we can filter messages rather than dumping them to console 2013-08-18 23:16:58 +02:00
Kenneth Skovhede b19eaacbd7 Implented ListControlFiles and added file count and file size to the normal list output 2013-05-30 21:54:43 +02:00
Kenneth Skovhede d696670598 Reworked the result reporting to support type safe values 2013-05-25 16:40:15 +02:00
Kenneth Skovhede 48a675b0da Fixed bugs after rewriting filesystem enumerators to use filters and IEnumerable<string> 2013-05-15 21:50:16 +02:00
Kenneth Skovhede c29d9d00b9 Implemented the backup command.
Rewrote filter handling across the entire project.
2013-05-13 22:32:05 +02:00
Kenneth Skovhede 4d49af71de Bugfixes and simplifications to the list command and CLI interface 2013-05-11 13:04:01 +02:00
Kenneth Skovhede 524d096d5b Added the new LIST command 2013-05-11 12:03:15 +02:00
Kenneth Skovhede 23744d8915 More refactoring and cleanup 2013-05-08 21:29:59 +02:00
Kenneth Skovhede 8f704d9445 Moved stuff around and dropped the ForestHash namespace 2013-05-08 20:17:07 +02:00
Kenneth Skovhede 211edcffdd Some cleanup after removing the old format 2013-05-05 18:14:27 +02:00
Kenneth Skovhede c7836ce403 Removed support for the old file format 2013-05-05 17:54:59 +02:00
Kenneth Skovhede e100e0a8d8 Merge branch 'master' into sandboxes/Kenneth/ForestHash
Conflicts:
	Duplicati/CommandLine/help.txt
	Duplicati/GUI/Program.cs
	Duplicati/GUI/Wizard pages/RestoreSetup/FinishedRestoreSetup.cs
2013-05-05 17:11:14 +02:00
Kenneth Skovhede 9d09cb473d Renamed ftp-password to auth-password and ftp-username to auth-username 2013-05-05 16:40:37 +02:00
Kenneth Skovhede 48385c8936 Improved unittest 2013-04-27 10:30:16 +02:00
Kenneth Skovhede 484127f7ca Style fix 2013-04-25 22:34:29 +02:00
Kenneth Skovhede 0043f8a3b4 Updated unit test to report errors/warnings 2013-04-16 22:36:37 +02:00
Kenneth Skovhede f40c6275aa Cleanup that fixes leftover temporary files 2013-04-16 22:36:19 +02:00
Kenneth Skovhede 2d852fc131 Added new options to unit test to make profiling easier 2013-03-16 12:07:06 +01:00
Kenneth Skovhede a0c3dd03eb Fixed a stray debug item 2013-03-15 22:11:51 +01:00
Kenneth Skovhede ada71d379b Fixed unit test to copy source files to a temporary location for backup so that the filename re-use mechanism is checked. 2013-03-15 21:14:57 +01:00
Kenneth Skovhede b21fc3289e Refactored the unit test to be more profiling friendly 2013-03-09 13:25:04 +01:00
Kenneth Skovhede aca4ed95cc More work on the block hash.
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.
2013-03-08 22:24:54 +01:00
kenneth@hexad.dk a0521da54d Initial version of the new block-based storage format.
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
2013-02-12 21:43:14 +00:00
kenneth@hexad.dk 83bf3d13df Fixed a problem with the unit test when there are sets with no changes.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1171 59da171f-624f-0410-aa54-27559c288bec
2012-03-20 19:47:16 +00:00
kenneth@hexad.dk 9bebb15319 Improved logging of the unit test when creating folders fail
git-svn-id: https://duplicati.googlecode.com/svn/trunk@1106 59da171f-624f-0410-aa54-27559c288bec
2012-01-19 19:05:52 +00:00
kenneth.skovhede@gmail.com b0a359fd27 Updated license text
git-svn-id: https://duplicati.googlecode.com/svn/trunk@770 59da171f-624f-0410-aa54-27559c288bec
2011-05-09 19:52:28 +00:00
kenneth.skovhede@gmail.com b834dab602 This commit upgrades the manifest version number to 3.
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
2011-03-10 18:26:38 +00:00
kenneth.skovhede@gmail.com 6710acbf2e Fixed a warning in the unittest
git-svn-id: https://duplicati.googlecode.com/svn/trunk@667 59da171f-624f-0410-aa54-27559c288bec
2010-12-30 15:30:15 +00:00
kenneth.skovhede@gmail.com e7dc268fad Renamed the Duplicati.Library.Core dll to Duplicati.Library.Utility as the "Core" name was misleading.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@591 59da171f-624f-0410-aa54-27559c288bec
2010-11-21 11:08:15 +00:00
kenneth.skovhede@gmail.com dd44e684d1 Update issue #32
Status: Fixed

USN is now activated by default on windows, but requires Administrative privileges.
If it fails to activate, it is silently ignored, and normal filesystem enumeration is used.
Set --usn-policy to:
"on" to get a warning if it fails,
"required" to abort the backup if it fails
"off" to disable USN
"auto" to silently ignore a fail


git-svn-id: https://duplicati.googlecode.com/svn/trunk@584 59da171f-624f-0410-aa54-27559c288bec
2010-11-17 19:45:25 +00:00
kenneth.skovhede@gmail.com e99c894b40 Fixed a problem with the unittest that occured after the friendly foldername restore.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@567 59da171f-624f-0410-aa54-27559c288bec
2010-10-29 20:49:17 +00:00
kenneth.skovhede@gmail.com 8f41ee39a2 Update issue #283
I have now fixed the issue, and tested it on the file provided.
It seems to compress better now, although the file contains sporadic changes,
even if only a single line was added. The restore also works as expected,
and the update works on my unittest.

Could you please try the updated version and see if it works as expected for you as well?

With regards to the "no else statement" (comment 7), I think that you discovered another
bug, which I have also fixed. The else statement is there to ensure that the buffer is completely filled,
so long chains of unmatched data gets written with as few commands as possible. So, on the first entry,
the copy command is flushed and the force_buffer_refill is set, causing the buffer to refill.
The bug was that IF the buffer was already full, the stream would read 0 bytes, and return a count of 0.
This was then interpreted as if the stream was empty (it returns zero when empty). I have now fixed that
with a check for this special case.

I have also included an update to the ChecksumFileReader that splits the previous m_weakTable into two
separate arrays, as that gives a faster lookup, than using a custom comparer. I also added support for
very large files (files larger than blocksize * int.MaxValue, appx. 4TB).

git-svn-id: https://duplicati.googlecode.com/svn/trunk@548 59da171f-624f-0410-aa54-27559c288bec
2010-10-18 20:48:59 +00:00
kenneth.skovhede@gmail.com b81d63ea73 Fixed a bug with async uploads that caused some files to no be uploaded.
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
2010-09-25 12:02:14 +00:00
kenneth.skovhede@gmail.com 5bc2dc3d35 Fix for building with MonoDevelop (and VS < 2008).
git-svn-id: https://duplicati.googlecode.com/svn/trunk@503 59da171f-624f-0410-aa54-27559c288bec
2010-09-09 17:18:33 +00:00
kenneth.skovhede@gmail.com ebe68c9c70 Fixes issue #110.
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
2010-08-17 16:09:36 +00:00
kenneth.skovhede@gmail.com a40f6acf37 A fairly large refactoring of the code.
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
2010-06-19 21:08:21 +00:00
kenneth.skovhede@gmail.com 50f06f0f3a Merge Sandbox Issue #5 into trunk.
Fixed issue #5.
Fixed issue #48.
Fixed issue #58.
Fixed issue #194.
Fixed issue #195.
Fixed issue #201.
Fixed issue #137.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@400 59da171f-624f-0410-aa54-27559c288bec
2010-05-12 08:41:54 +00:00
kenneth.skovhede@gmail.com 05bfadbc41 Updated License notice to 2010
git-svn-id: https://duplicati.googlecode.com/svn/trunk@311 59da171f-624f-0410-aa54-27559c288bec
2010-01-03 22:57:13 +00:00
kenneth.skovhede@gmail.com aa8fcdb6a0 Fixed issue #59 (SSH backend on Linux)
A full rewrite of the SSH backend, and a simple C# version of expect.
Fixed issues with similar named files on the same backend.
Fixed an issue where files were not deleted.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@172 59da171f-624f-0410-aa54-27559c288bec
2009-05-11 18:56:21 +00:00
kenneth.skovhede@gmail.com 96672a1411 Fixed an issue with folders under linux for issue #27.
The unit tests now run under mono/linux, but the UI has some issues.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@144 59da171f-624f-0410-aa54-27559c288bec
2009-04-07 18:13:39 +00:00
kenneth.skovhede@gmail.com 0cd0b4d1c8 Added the cleanup method, this closes #16.
Fixed a bug where non-modified files were marked as deleted.
Cleaned up the ListContent method to use the same code as the Backup method, this closes #31.
Added a WEBDAV backend for #28, but there is no UI for it yet.
Made most of the work for documenting commandline options, #14.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@123 59da171f-624f-0410-aa54-27559c288bec
2009-03-21 12:46:54 +00:00
kenneth.skovhede@gmail.com b60219335e Fixes for issue #3.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@108 59da171f-624f-0410-aa54-27559c288bec
2009-02-26 18:33:52 +00:00
kenneth.skovhede@gmail.com 8babf1d616 Updated license notices.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@85 59da171f-624f-0410-aa54-27559c288bec
2009-02-10 23:36:15 +00:00
kenneth.skovhede@gmail.com 2ddd10a1af Added a standalone decryption app, in case something breaks later on.
Updated the wizard to allow GPGEncryption.
Settings now reflect the actual paths required.
Completely reworked the way differential updates are read and written,
which gives a much cleaner code, a heavy performance boost and a
highly reduced number of temporary files.
Removed duplicated code for streamwrapping.
Updated SharpZipLib to the latest release.
Removed unused compression code.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@84 59da171f-624f-0410-aa54-27559c288bec
2009-02-10 23:29:01 +00:00
kenneth.skovhede@gmail.com c9ce3a3216 Added options to throttle up and download.
GPG encryption now works correctly.
Asyncronous uploads now work as expected.

git-svn-id: https://duplicati.googlecode.com/svn/trunk@73 59da171f-624f-0410-aa54-27559c288bec
2009-01-25 19:33:36 +00:00
kenneth.skovhede@gmail.com 576d2ea74b Amazon S3 support is now done for the commandline, still needs a little fixup in the GUI.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@71 59da171f-624f-0410-aa54-27559c288bec
2009-01-20 22:54:53 +00:00
kenneth.skovhede@gmail.com ea82284a78 A not-so-robust-but-working version of the SSH backend is ready.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@65 59da171f-624f-0410-aa54-27559c288bec
2009-01-15 14:47:05 +00:00
kenneth.skovhede@gmail.com c4fec09e6a Now supports the FTP backend.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@64 59da171f-624f-0410-aa54-27559c288bec
2009-01-15 12:57:52 +00:00
kenneth.skovhede@gmail.com 3faa86a810 Fixed a few bugs. There is still a bug with incorrectly cleaned up items on a restore.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@61 59da171f-624f-0410-aa54-27559c288bec
2009-01-14 20:13:59 +00:00
kenneth.skovhede@gmail.com 56bb5602a5 Now supports short filenames.
git-svn-id: https://duplicati.googlecode.com/svn/trunk@60 59da171f-624f-0410-aa54-27559c288bec
2009-01-14 17:53:33 +00:00