Improve CMake install paths configuration and platform support checking when cross-compiling.
Fix Unaligned memory access for
hashtable_test.c name collision for
sys/types.h on some
Format code with consistent style, adding
make tidy and
tidyc targets for reformating code and comments.
Removed perl as a build dependency. Note it is still required for some tests.
Update RPM spec file for v2.0.2 and fix cmake man page install.
Extensively reworked Doxygen documentation, now available at http://librsync.sourcefrog.net/
Removed some declarations from
librsync.h that were unimplemented or no
longer ever useful:
declaration of unimplemented
snprintf code: no longer acutally linked after changing to
CMake, and since it's part of C99 it should be widely available.
Document that Ninja (http://ninja-build.org/) is supported under CMake. It's a bit faster and nicer than Make.
make check (or
ninja check etc) will now build and run the tests.
Previously due to a CMake limitation,
make test would only run existing
tests and could fail if they weren't built.
Added cmake options to exclude rdiff target and compression from build. See install documentation for details.
popt is only needed when
rdiff is being built.
Improved large file support for platforms using different variants
rdiff -s option now shows bytes read/written and speed.
For delta operations it also shows hashtable match statistics.
Running rdiff should not overwrite existing files (signatures, deltas and
new patched files) by default. If the destination file exists, rdiff will
now exit with an error. Add new option
--force) to overwrite existing
Improve signature memory allocation (doubling size instead of calling
realloc for every sig block) and added support for preallocation. See
job->estimated_signature_count for usage when using the
rdiff uses this by default if possible.
Significantly tidied signature handling code and testing, resulting in more consistent error handling behaviour, and making it easier to plug in alternative weak and strong sum implementations. Also fixed "slack delta" support for delta calculation with no signature.
inttypes.h from C99 is now required. Removed redundant
librsync-config.h header file.
Lots of small fixes for windows platforms and building with MSVC.
New open addressing hashtable implementation that significantly speeds up delta operations, particularly for large files. Also fixed degenerate behaviour with large number of duplicate blocks like runs of zeros in sparse files.
Optional support with cmake option for using libb2 blake2 implementation. Also updated included reference blake2 implementation with bug fixes,
Improved default values for input and output buffer sizes. The defaults are
--output-size=0, which will choose recommended
default sizes based on the
--block-size and the operation being performed.
Fixed hanging for truncated input files. It will now correctly report an error indicating an unexpected EOF was encountered.
Fixed #13 so that faster slack delta's are used for signatures of empty files.
Fixed #33 so
rs_job_iter() doesn't need calling twice with
Also tidied and optimized it a bit.
Fixed #55 remove excessive
rs_fatal() calls, replacing checks for
programming errors with assert statements. Now
rs_fatal() will only
be called for rare unrecoverable fatal errors like malloc failures or
impossibly large inputs.
Note: despite the major version bump, this release has few changes and should be binary and API compatible with the previous version.
Better performance on large files.
Add comment on usage of
rs_build_hash_table(), and assert correct use.
Callers must call
rs_build_hash_table() after loading the signature,
and before calling
Switch from autoconf to CMake.
Please login to add feedback.