Jdupes Versions Save

A powerful duplicate file finder and an enhanced fork of 'fdupes'.

v1.24.0

11 months ago

A LINKING BUG WAS FOUND IN THIS RELEASE. DO NOT USE IT. Wait for 1.25.0 instead, or apply the changes in act_linkfiles.c up until current master.

  • Progress indication now uses platform timers instead of check loops
  • Lots of small code size and efficiency improvements
  • No one should be using -T so it has been made far more annoying
  • -B can be used with -T which may be faster for BTRFS dedupe work
  • CTRL-C aborts now show a user abort warning message to stderr
  • Improved version information display
  • Documentation updates

v1.23.0

1 year ago
  • Use the new libjodycode 2.0 API version handling system
  • Dedupe is now attempted on read-only files (meant for BTRFS snapshots)
  • The -C option can now accept power-of-two chunk sizes up to 256 MiB
  • "Extensions" are now "feature flags" and some have changed
  • OMIT_GETOPT_LONG is now NO_GETOPT_LONG (does anyone actually use this?)
  • Linux-x86_64 can now build several multilib arches (x86_64, x32, i386)
  • Various other under-the-hood code changes for libjodycode 2.0

v1.22.0

1 year ago
  • libjodycode is now required to build and run jdupes (see INSTALL)
  • Move all jody_* code to libjodycode and remove from jdupes
  • Add -E/--error-on-dupe option to terminate immediately if any dupe is found
  • Support showing x32 ABI in version information
  • Several build system improvements for macOS, BSD, and linking in libxxhash

Builds attached here statically link in libjodycode so your system won't require any shared libraries or DLLs to run. Read the INSTALL file before building this version to understand how to get libjodycode and tell Make to use it.

v1.21.3

1 year ago
  • Fix exit behavior when no valid directories are given
  • Only act on "normal" files and directories

v1.21.2

1 year ago
  • Work around macOS data corruption (clonefile may wreck compressed files)
  • Major performance fix in the double traversal prevention tree code
  • Added undocumented '-9' benchmark option for testing traversal code
  • Extra error checks to try to finally solve a very rare crash bug
  • Tiny code size reduction by discarding unused xxHash code
  • Build system can now build native M1 + x86_64 fat binares on macOS
  • jody_hash re-added as a build-time option (mainly for old/embedded systems)
  • Many options/features/safety checks can now be selectively compiled out
  • New 'make BARE_BONES=1' option builds the most minimal jdupes possible

Note: the macOS workaround is present in 1.21.1 but was forgotten in the list of changes.

v1.21.1

1 year ago
  • Reinstate '-I/--isolate' by popular demand; use at your own risk!

Expect to lose data if you use this feature. It is strongly susceptible to the documented "triangle problem" and absolutely does not protect files in each directory from matching with one another. Don't get mad at me if you use it and see a cloud of smoke come out of your disk array.

UPDATE: I now have access to macOS Monterey, so this version is the first version for which I can provide an M1-native + x86_64 fat binary.

v1.21.0

1 year ago
  • Remove '-I/--isolate' which has never worked correctly
  • Fix compiling when NO_HARDLINKS and NO_SYMLINKS are both defined
  • Increased stack size limits to enable deeper recursion without crashing
  • Fixes to make compilation under Cygwin (instead of MSYS2 MinGW) work
  • Remove the temporary '-X help' warning about changes in functionality
  • Some minor under-the-hood changes for future enhancements

v1.20.2

2 years ago
  • Interactive deletion now offers "link set" options too

v1.20.1

2 years ago
  • Interactive deletion now assumes 'a' when you just hit [ENTER]

v1.20.0

3 years ago
  • Normalize long option hyphenation (CHECK YOUR SHELL SCRIPTS)
  • Remove long-deprecated -n/--noempty option (CHECK YOUR SHELL SCRIPTS)
  • Fix printout for -P/--partial when progress indicator is active
  • Miscellaneous documentation cleanups/updates

This release has a new minor version number due to multiple option changes that can break existing shell scripts (or will in the next release), so CHECK YOUR SHELL SCRIPTS!