jdupes 1.9

- stderr on Windows is no longer polluted or empty when redirected
- Added -1/--one-file-system to restrict recursion to the same filesystem
- Added a universal exclusion stack which is currently only used for -X
- Added -X/--exclude to use exclusion stack; supersedes -x/--xsize
- More robust BTRFS enablement behavior in Makefile
- Fixed Unicode display for hard linking on Windows
- Efficiency improvements to internal memory allocator (string_malloc)
- Documentation improvements and updates
- Provide "fdupes_oneline.sh" which emulates old "fdupes -1" feature
- Single file names passed as arguments are now accepted and processed

jdupes 1.8

- All files are now licensed under The MIT License exclusively
- Fixed a serious memory alloc bug; upgrading is *strongly* recommended
- Several huge improvements to progress indicators
- Fix some error message display problems and add more error checking
- Fixes for several potential crashes and buffer overflows
- Indicate no duplicates were found if printing matches and none exist
- On Linux, jdupes now auto-tunes I/O size based on CPU L1 D-cache size
- The -v switch now also shows info about bitness in the version string

jdupes 1.7

- Incompatible change: zero-length files no longer duplicates by default
- New -z/--zeromatch option to consider zero-length files as duplicates
- I/O chunk size changed for better performance
- The PROGRAM_NAME variable is now used properly during make
- Program was re-organized into several split C files

jdupes 1.6.2

- Fix: version number shown in jdupes -v wasn't updated in 1.6.1
- Prevent BTRFS dedupe of more files than the kernel can handle
- Track directories to avoid scanning the same directory twice

jdupes 1.6.1

- Show backslash instead of forward slash as path separator on Windows
- Make BTRFS dedupe error messages more informative and less confusing
- Minor code tweaks, typo and help text fixes
- Split some functions into separate files (jdupes.c was getting large)

jdupes 1.6

- Add the -l/--linksoft option to create symbolic links from duplicates
- Disable following symlinks to directories when -s/--symlinks is used
- Reduce overall memory usage by approximately 5%
- Add configurable path buffer sizes and path buffer overflow checks
- Fixes for some build warnings seen on ARM and MIPS

jdupes 1.5.1

- Significant reduction in memory usage (with a bonus tiny speed boost)
- Improvements in string_malloc memory allocator code
- Bug fixes for output formatting inconsistencies
- Major BTRFS dedupe compilation and functionality fixes
- LOW_MEMORY compile option added for more size/speed tradeoff control

jdupes 1.5

- Invert -Z option: only "soft abort" if asked explicitly to do so
- Tweak internal data chunk size to reduce data cache misses
- Fix partial hash optimization
- Change PREFIX for building from /usr/local back to /usr

jdupes 1.4

- Add support for Unicode file paths on Windows platforms
- Discard floating point code of dubious value
- Remove -1/--sameline feature which is not practically useful
- Process partially complete duplicate scan if CTRL+C is pressed
- Add -Z/--hardabort option to disable the new CTRL+C behavior
- Add [n]one option to -d/--delete to discard all files in a match set
- Minor bug fixes and tweaks to improve behavior

jdupes 1.3

- Add -i/--reverse to invert the match sort order
- Add -I/--isolate to force cross-parameter matching
- Add "loud" debugging messages (-@ switch, build with 'make LOUD=1')

jdupes 1.2.1

- Fix a serious bug that caused some duplicates to be missed

jdupes 1.2

- Change I/O block size for improved performance
- Improved progress indicator behavior with large files; now the progress
  indicator will update more frequently when full file reads are needed
- Windows read speed boost with _O_SEQUENTIAL file flag
- Experimental tree rebalance code tuning

jdupes 1.1.1

- Fix a bug where the -r switch was always on even if not specified

jdupes 1.1

- Work around the 1023-link limit for Windows hard linking so that linking
  can continue even when the limit is reached
- Update documentation to include hard link arrow explanations
- Add "time of check to time of use" checks immediately prior to taking
  actions on files so that files which changed since being checked will not
  be touched, avoiding potential data loss on "live" data sets
- Add debug stats for files skipped due to Windows hard link limit
- Change default sort to filename instead of modification time
- Replaced Windows "get inode number" code with simpler, faster version
- Fixed a bug where an extra newline was at the end of printed matches
- Reduced progress delay interval; it was a bit slow on many large files

jdupes 1.0.2

- Update jody_hash code to latest version
- Change string_malloc to enable future string_free() improvements
- Add string_malloc counters for debug stat mode
- Add '+size' option to -x/--xsize switch to exclude files larger than the
  specified size instead of smaller than that size

jdupes 1.0.1

- Fix bug in deletion set counter that would show e.g. "Set 1 of 0"
- Minor size reductions by merging repeated fixed strings
- Add feature flag 'fastmath' to show when compiled with -ffast-math
- Corrections to code driven by -Wconversion and -Wwrite-strings


jdupes 1.0

First release. For changes before the 'jdupes' name change, see OLD_CHANGES
