Syncdir CHANGELOG: 12/27/08: v2.6.2 Fixed status output formatting when creating symlinks. Updated copyright information. 9/7/05: v2.6.1 Added -l flag to follow symlinks if they are the initial arguments. 4/8/05: v2.6.0 Added -i flag to allow inclusion of .snapshot directories Added -c flag to force comparison of file contents, not just timestamps and sizes. Converged all operations flags into a single struct that we can pass around as needed. This allows us to easily add more flags or parameters in the future. Changed licensing to the GNU Public License V2 and updated all source files. 9/25/03: v2.5.12 Added a new flag -q to suppress output to stdout. Added a new flag -d to show only what it would do, but not actually change any files anywhere. Fixed some minor output formatting with missing newlines. Increased the directory hash size by a factor of 16 to improve directory comparisons with large numbers of files present. 1/4/03: v2.5.11 Fixed bugs in deltree() and dupdir() where directory paths > MAXPATH can cause a buffer overflow. The new behavior reports failures due to paths being too long. The new code is slighty faster due to fewer strlen() calls. Made some changes to the Makefile compile dependancies. Also made path sizes, link lengths, etc. configurable in syncdir.h 12/29/01: v2.5.10 Added a sync() at the end of main() just before the program exits. Added a '.' to the end of each line of output to denote completion of that item. 1/11/01: v2.5.9 Modified code so that root priviledges are not required. 11/25/00: v2.5.8 Added largefile support for Solaris and Tru64 Unix. Minimized the dependancy on 32 bit datatypes. 9/22/00: v2.5.7 Fixed a bug uncovered by the strcpy()->strncpy() changes that would clear the link field when creating symlinks. Fixed a bug in makelink() for the case of a re-created symlink. The stat field from the old symlink was not cleared when it was deleted. This caused stamp_entry() to not re-stat() the new symlink resulting in the old stat field being used instead. As a result, the comparison for owner/group could be wrong but not be detected. Also, fixed a bug in makelink() where the wrong file was printed. 9/20/00: v2.5.6 Fixed a race bug where a source file can dissappear from under us but was not handled properly, despite being detected. Also converted some strcpy()'s to strncpy()'s. 8/07/00: v2.5.5 Fixed an obscure identical inode bug in lib_fcopy(). Removed the unused locking code in lib_fcopy(). Made further modifications to reduce system calls by checking file sizes, modes, and owner/group before making calls to sync them. Also, made some tweaks for efficiency. Increased the sparsefile check size from 512 to 1024. Removed some unncessary checks from the hash routines. Changed the hash values to a prime number. 7/19/00: v2.5.4 Fixed version number printing (was reporting the wrong version). Fixed a bug that when two files/directories on different filesystems had the same inode number, they would not be sync'ed. 6/13/00: v2.5.3 Strip off trailing '/' in pathnames passed as arguments. For mirroring of regular files, check file sizes as well as mod times and mark for update if either is off. 4/26/00: v2.5.2 Added addition help comments when syncdir is run without arguments. Updated the "license". 1/13/00: v2.5.1 Fixed some compile problems on OSF/FreeBSD/Linux in regard to an include file. Fixed Makefile so that it does not ignore the DEFS line. 1/1/2000: v2.5 Rewrote argument passing by storing info in a structure and passing that to support functions to reduce the number of system calls by as much as 20%. New code should be more efficient. Upped the copy buffer from 4096 to 8192 and defined the buffer size in syncdir.h. Added a check for identical inodes (resulting from hardlinks) in syncpaths(). Added a new flag to skip crossing file system boundaries. Reorganized source files moving all support functions in ext.c to misc.c. All support functions except syncpaths() were moved from syncdir.c to ext.c. Removed some obsolete/unused code from misc.c 12/29/98: v2.4.2 Added version info to be printed with usage. Root check is now only made when arguments have been processed. 9/17/98: v2.4.1 Modified the update option to only update regular files if the source copy is newer than the destination copy. 9/5/98: v2.4 Added support for Unix sockets Rewrote some checks for clarity. Changed the output for new file copies. 8/5/98: v2.3.2 Minor tweaks in a couple of lib_fcopy()'s 'if' statements. Upped the lib_create_hashtable() sizes from 128 to 512. Moved copy buffers from 8192 back to 4096 for production release. Some systems may have problems or be slower if larger buffers are used. Fixed bug in lib_fcopy() where updates to a sparse file could result in a incorrect copy. Fixed a minor bug in deltree() where directory deletions were not announced if quiet is off. 7/20/98: v2.3.1 Fixed a bug in stamp_entry() in which it did not handle fifo's correctly. Increased the copy buffers from 4096 to 8192. 7/12/1998: v2.3 Added support for named pipes (FIFOs) and made the file type checking a little more efficient. Previous Changes are not recorded.