New in v0.4.3.RC9 (2007/07/09)
------------------------------
Change to a max block size of 2048 bytes for rsync difference buffer.
This may slow things down for truly large files, but will give much
smaller deltas on files with numerous small changes, such as database
files.

New S3 backend, Boto, from Eric Evans, replaces bitBucket.  Boto can
be obtained from http://code.google.com/p/boto/.  I did not make this
a requirement for setup since its not in the normal repositories.

New FTP backend from Thorsten Schnebeck that uses ncftp instead of
Pythons ftplib.  This seems to be much more solid.  I added the -f
option with a secure temp file to contain host, user, and password,
rather than having them on the command line.  I also added the -m
option to the put command to create the target directory and the -t
option to make sure it times out if there is a network problem.

The Backend class now contains a popen_persist function that acts like
run_command_persist.  Both use the new num_retries global.

Added a commandline option, '--num-retries=<int>', to set the number
of retries.  The default is 5.


New in v0.4.3.RC8 (2007/06/27)
------------------------------
Bug 20282 - Thomas Tuttle:
An out of range index when checking past history in the backup
sets caused a failure when trying to access later.

Bug 20149 - dAniel hAhler:
dAniel submitted a second patch for this for further cleanup.
The new patch prefers the latest intact backup set.

Bug 20039 - Andreas Schildbach: --and--
Patch 6030 - Alexander Zangerl <az@debian.org>:
Duplicity now uses bzip2 for compression.  This matches the way
the Debian distribution handles it.  I'll think about adding an
option to override later, if its needed.


New in v0.4.3.RC7 (2007/06/19)
------------------------------
Bug 20179 - dAniel hAhler: 
When errors cause login to fail in FTP, reset and try again.

Patch 6015 -dAniel hAhler:
Better display of traceback when ftpBackend errors out.

Patch 6029 - Alexander Zangerl <az@debian.org>:
http://bugs.debian.org/370206
archive-dir together with incremental backup results in crash. the
patch is simple, the code in 0.4.2 did attempt to access strings as
objects.

Patch 6031 - Alexander Zangerl <az@debian.org>:
http://bugs.debian.org/369971
there's some problems with unattended encrypted dumps, if the user
doesn't want to hand duplicity the gpg passphrase and attempts to work
around this by using a local archive dir.  the patch makes it look at
a manifest in a local archive dir if gpg doesn't manage to decrypt a
remote one (no surprise without a passphrase).

Patch 6032 - Alexander Zangerl <az@debian.org>:
a new feature patch: i've recently gotten annoyed with having
gazillions of 5mb files and therefore added a --volsize option to
allow the user setting the chunk size. the patch is simple and
contains a manpage update as well.

Patch 6033 - Alexander Zangerl <az@debian.org>:
let's add a --help terse usage message and don't just direct the user
to the manual. this should come handy if somebody needs to restore
stuff without having the manual available.


New in v0.4.3.RC6 (2007/06/13)
------------------------------
Bug 20149 - dAniel hAhler: When errors cause an incomplete backup set,
flag the error with a message, rather than erroring out.  The user
then knows to run --cleanup.

Patch 5998 - Kuang-che Wu: Cache uid and gid lookup to speed
operations.

Patch 5993 - daacyy302@sneakemail.com: Make Amazon S3 backend 
incrementally more robust for recovery.


New in v0.4.3.RC5 (2007/06/04)
------------------------------
GnuPG fails when trying to access stdin on an empty passphrase.
Changes allow empty passphrase on public-key encryption and now
respond gracefully on empty passphrase for symmetric encryption.

dAniel hAhler submitted a patch to change "Error initializing file
foo" (log level 2), where foo was a socket, to "Skipping socket foo"
(log level 7).  https://savannah.nongnu.org/patch/?5985

Change logging to flush after every write, unbuffering stdout and
stderr, thus producing logs that are coherent.


New in v0.4.3.RC4 (2007/06/02)
------------------------------
More fixes on FTP.  dAniel hAhler supplied a new patch for FTP that
cleans up the error handling and reduces the retry time to zero on the
first retry.


New in v0.4.3.RC3 (2007/05/31)
------------------------------
Fixed connection problem in FTP where it was not quitting on
connection reset and just logging in again.  This created many stale
logins on the remote system.

Changed attribution of a couple of patches to dAniel hAhler, who
actually wrote the patches, not just found them.


New in v0.4.3.RC2 (2007/05/30)
------------------------------
Fixed bug in tarfile.py that was causing ValueError exception.  Thanks
to dAniel hAhler for the patch that fixed the problem.  Refer to:
http://savannah.nongnu.org/bugs/?19998


New in v0.4.3.RC1 (2007/05/26)
------------------------------
Applied patches:
  https://savannah.nongnu.org/patch/?4486
  https://savannah.nongnu.org/patch/?5183
  https://savannah.nongnu.org/patch/?5185
  https://savannah.nongnu.org/patch/?5412
  https://savannah.nongnu.org/patch/?5413
  https://savannah.nongnu.org/patch/?5680
  https://savannah.nongnu.org/patch/?5681
  https://savannah.nongnu.org/patch/?5682
  https://savannah.nongnu.org/patch/?5794
  https://savannah.nongnu.org/patch/?5830

Fixed bugs:
  https://savannah.nongnu.org/bugs/?2441
  https://savannah.nongnu.org/bugs/?16711

ProFTPD resets the connection after returning 226 when NLSTing an 
empty directory, so changed code to allow that exception.

ftpBackend now asks for a password if FTP_PASSWORD does not exist.

rsyncBackend was using full URL in the commandline and failing.
It now uses only server:path/, leaving off rsync://.

Added --sftp-command option, now that the scp backend uses sftp for
listing and deleting files.

Brian Sutherland has contributed a new backend for Amazon's S3 data
storage service.

Added some patches compiled by Andre Beckedorf:

    Tolerate more errors when listing an ftp directory (errors
    indicate an empty dir).

    Retry ftp commands when upon temporary error.  (Thanks to to
    Stefan Schimanski and dAniel hAhler for their patches.)


New in v0.4.2 (2006/02/02)
--------------------------
Mathias de Riese's substantial patch or patches appear to have been
applied to CVS years ago, but not released yet.  Sorry about that.

Followed suggestion by David Rigel, make user type passphrase twice to
confirm.

Eric Hanchrow's patch makes sure duplicity deletes older signatures
when using --remove-older-than.

Jiri Tyr's patch may fix some scp/sftp problems.

asdf's patch makes sure uids or gids over 2097151 don't corrupt the
tarfiles.

Cleaned up and documented --collection-status option, which lists the
backup chains and sets found in the repository.

FTP error 450 when listing a directory now understood to mean the
directory is empty (duplicity will not exit with error).

--remove-older-than now cannot delete the active backup chain, even if
you specify a time later than the chain (e.g. "--remove-older-than
now").


New in v0.4.1 (2003/08/09)
--------------------------
Applied (version of) Helmut Schneider's patch to display file mod
times with --list-current-files.

Fixed bug found by Rob Browning handling symlinks with long names that
have long names.

Applied Stephen Isard's patch to fix exclude-globbing-filelist.

Applied Sebastian Wilhelmi's patches to add rsync as a backend.

To improve large file performance, signature block size is now based
on file length.

duplicity should now build with librsync 0.9.6.  Much thanks to
Donovan Baarda for his work in this version of librsync.

duplicity should work with Python 2.3 now.


New in v0.4.0 (2002/11/30)
--------------------------
Changed restore procedure to download volumes from all backup sets
simultaneously.

Changed the verbosity level of some messages to 5, so level 4 is
cleaner.

Added --verify option, for checking whether a backup is up-to-date, or
to see what has changed since that backup.

GPG no longer needed: with --no-encryption option duplicity will write
gzipped volumes.  The checksums of volumes will still be verified, but
this will not stop a malicious attack because the manifest files can
be easily updated.

Earlier versions could crash when doing an incremental backup where no
files had changed.


New in v0.3.1 (2002/11/17)
--------------------------
Now by default the most recent files get restored, not the oldest.
You can get the old weird behavior by specifying --restore-time 1 (or
any other very early time).

Fixed a couple bugs where duplicity would crash if it found the remote
directory corrupted in various ways (for instance, if it contained a
file that looked like a duplicity file but had an invalid time
string).

Added --cleanup option, for deleting the files that may accumulate if
a duplicity session is aborted after it has uploaded some files.

Added --remove-older-than option, for safely deleting backup sets
older than the given time.

Suppress GPG log messages like "gpg: CAST5 encrypted data" if
verbosity is set to 3 or less.

short-filenames get even shorter---now use base 36 (0-9 and a-z) for
times and volume numbers.  This change is not backwards compatible but
probably I'm the only one affected.  If not, let me know and I can
probably write a little script.

Improved the way files are packed into the volumes so less space is
wasted per volume.

Decreased default volume size to 5MB (from 50MB) in preparation for
the new restore system planned for 0.4.0.


New in v0.3.0 (2002/11/10)
--------------------------
Added ftp backend.  Now the remote repository can accessed by ftp and
can be specified like "ftp://user@foo.bar/".

Added --ssh-command and --scp-command options, which can be used to
replace ssh and scp, or pass different arguments to them.  Requested
by Will Dyson.

Added --short-filenames option, for use when uploading to a file
system that can't have filenames longer than 30 characters (e.g. Mac
OS 8).

Added --list-current-files mode, which lists the files currently at
the given destination url.

Ported some statistics code from rdiff-backup.  Now by default
statistics are printed after a backup session.  This can be disabled
with the --no-print-statistics option.  Thanks to Mathieu Doidy for
requesting the above two features.

Added rdiff-backup-style --include/exclude-filelist-globbing options.
Now filelists with "+ /- " can be treated exactly like repeated
--include or --exclude options.

Fixed bug backing up normal files instead of directories.  Thanks to
Mathieu Doidy for bug report.


New in v0.2.1 (2002/10/31)
--------------------------
Security Fix:  Fixed bug where an rdiffdir patch containing a path
with a '..' component could overwrite files in parent directory.

Fixed bug where files without a username (only uid) would be marked as
changed every session.  Thanks to Peter Ehrenberg for bug report.

Now files with negative mtimes are treated as if they have mtime 0.
This prevents them from being marked as changed unnecessarily.  Thanks
to Peter Ehrenberg for report.


New in v0.2.0 (2002/09/29)
--------------------------
(Thanks to Peter Ehrenberg for his valuable suggestions on many of the
below.)

** IMPORTANT ** New syntax intended to make duplicity more
user-friendly.  Old duplicity invocation will not work so change your
scripts and read the man page.

By default no local archive dir will be read or created.
$HOME/.duplicity has no special significance.  However, one can be
specified with --archive-dir for faster operation.

If PASSPHRASE environment variable not set, ask user for passphrase
instead of exiting.

The source directory and hostname are now recorded, and rdiff-backup
will complain if you try to back up different directories to the same
location (but --allow-source-mismatch can override).

Changed some of the logging verbosity levels.  Level 5 now lists files
being backed up.

Fixed large file problems.  Files larger than 2GB should be backed up
correctly.

Significant additions to the manual page.

By default, duplicity now chooses whether to make a full or
incremental backup depending on whether up-to-date signatures can be
found on the remote side or local archive directory.  Overrideable
with (-f/--full and -i/--incremental).


New in v0.1.1 (2002/09/16)
--------------------------
Supports asymmetric encryption with GPG public keys using the
--encrypt-key option.

Added option --sign-key.  When backing up, files are signed with the
given key.  When restoring, remote files are required to be signed by
given key.

Now duplicity checks the hash data found in the manifest file.  The
previous version generated SHA1 hashes but did not check them when
restoring.

Fixed GnuPG broken pipe error.  In the previous version certain
partial restores would end with a spurious GnuPG error message.


New in v0.1.0 (2002/08/26)
--------------------------
First real version.
