1 changelog.txt from dupmerge
2 ===========================
4 Circa 1993: Initial version, Phil Karn, karn (at) ka9q (dot) net.
7 1998-02-12: Last version from Phil Karn.
10 2004-12-07: Version 1.1
11 Added swap macro, invers mode, no replacing of zero length files, void casts
12 for semantic checkers, version number, sorting of equal size files due to dev
15 Tested with SuSE 9.2 and Debian (both Kernel 2.6), tested with 4 and 7
16 Gigabyte files, coreutils sources, md5-collision files, changed to
17 reading/writing/comparing 8 byte blocks (instead of 1 byte blocks):
18 2 times faster now. Added Todo-List.
19 Rolf Freitag, rolf.freitag at email.de
22 2004-12-01: Version 1.21
23 Bugfix, because in the old verson 1.1 there are two missing braces.
24 These missing braces caused that files of same size where
25 compared only in the first 64 bits so some different files where linked
26 together from that version!
27 So all future releases and cvs versions will be tested before release/commit
28 with the coreutils-5.2.1 sources to assert that in new versions there will be
30 These are the test results from du -sk:
31 before dupmerge: 31628
32 after original version 1.0 from Phil Karn: 29968
33 after version 1.1: 29712
34 after actual version 1.21: 29968
38 2005-02-10: Version 1.3
39 This version has a help and a fully tested sparse mode which replaces each
40 file which can be shrinked by sparse copying. The inverse nomal mode now
41 expands all hard links in O(n) (was O(n*log(n))) and has a new combo mode in
42 which first all files are replaced by their sparse copy if it is smaller and
43 after that files of size > 0 with the same content get hard linked to the
44 oldest file with lowest disk usage (the eldest of the most sparse files). With
45 the -i option the inverse will be done. This version now "compresses" as much
46 as theoretical possible by removing redundancy with linking and sparsing. It
47 saves approx. 20 % of disk space.
51 2005-04-17: Version 1.4
52 Added deletion mode (option -d), which deletes multiple files.
53 This mode can be used e. g. for clearing movie and picture archives.
57 2005-04-27: Version 1.5
58 Because the old versions of dupmerge do use fgets to read the filenames,
59 filenames with newlines can not be read. Therefore fgets is replaced since
60 version 1.5 by fread and the old sequence operator '\n' is replaced by '\0';
61 the input file names must now be separated with zero and not newline. This is
62 now perfect because a file name is a zero-terminated string.
64 find ./ -type f -print | dupmerge <options or not>
66 find ./ -type f -print0 | dupmerge <options or not>
67 Bugfix of the wrong version number.
68 Tested with several files with several newlines in them.
72 2005-08-31: Version 1.6
73 Added changelog and several file checks because fread does not distinguish
74 between end-of-file and error.
75 Fixed not quite "started" message in quiet mode.
80 2007-10-29: Version 1.7
81 Added date and time to startup message. That's important in case of filesystem
82 errors like directory loops and an infinit looping find.
83 Added const qualifiers to the two main arguments as minimal write protection.
84 Added volatile qualifier to the i_exit_flag for safe ipc.
85 Added s option for doing soft linking instead of hard linking, but a) it needs
86 several runs to make all links and b) the inverse is not implemented yet.
87 Added Cygwin support simply via #ifndev __CYGWIN__; it can now be compiled
88 under Cygwin without modification.
89 Tested successfull several times with coreutilities and other stuff.
93 2008-03-01: Version 1.73
94 Added some comments, checked with coreutils-5.2.1 (find ./ -type f -print0 |
95 dupmerge) and my archive (about 500 GB in one million files on an encrypted partition).