Update to 3.0.6. Changes:
If you run xdelta3 on source files smaller than 64MB, you may notice
xdelta3 using more memory than it has in the past. If this is an issue,
lower the -B flag.
Fixed issues with external compression and potential buffer overflows
when using the -v setting (verbose output) with very large input files.
Update to 3.0z:
External compression updates. 3.0z prints a new warning when it
decompresses externally-compressed inputs, since I've received a
few reports of users confused by checksum failures. Remember, it
is not possible for xdelta3 to decompress and recompress a file
and ensure it has the same checksum. 3.0z improves error handling
for externally-compressed inputs with "trailing garbage" and also
includes a new flag to force the external compression command. Pass
'-F' to xdelta3 and it will pass '-f' to the external compression
Update to 3.0y; install README.
Monday, February 15, 2010
Re: 3.0y (source)
Version 3.0y fixes several regressions introduced in 3.0w related
to the new support for streaming the source file from a FIFO. This
was a long-requested feature and I'm pleased to report that now,
with the fixes in 3.0y, it appears to be working quite well. The
upshot of this feature is that you can encode or decode based on
a compressed source file, without decompressing it to an intermediate
file. In fact, you can expect the same compression with or without
a streaming source file.
There were also reports of the encoder becoming I/O bound in previous
releases, caused by the encoder improperly seeking backwards farther
than the settings (namely, the -B flag) allowed. This is also fixed,
and there's a new test to ensure it won't happen again.
Update: The built-in support for automatic decompression of inputs
is interacting badly with the new source handling logic, results
in poor compression.
Sunday, October 25, 2009
Re: 3.0w (source)
With such a good state of affairs (i.e., no bug reports), I was
able to tackle a top-requested feature (59, 73). Many of you have
asked to be able to encode deltas using a FIFO as the source file,
because it means you can encode/decode from a compressed-on-disk
source file when you don't have enough disk space for a temporary
uncompressed copy. This is now supported, with one caveat.
When decoding with a non-seekable source file, the -B flag, which
determines how much space is dedicated to its block cache, must be
set at least as large as was used for encoding. If the decoder
cannot proceed because -B was not set large enough, you will see:
xdelta3: non-seekable source: copy is too far back (try raising
The stream->src->size field has been eliminated. Internally, a new
stream->src->eof_known state has been introduced. This was a big
improvement in code quality because, now, the source and target
files are treated the same with respect to external (de)compression
and several branches of code are gone for good.