
			      ChangeLog
			      ---------

  11/11/04  version 2.112
	-work to get hashSave info properly updated for directories
	-also fixed logic for directories for -c -del option combination
  11/11/04  version 2.111
	-locale issues:
	  try to clobber locale only if LANG env var is set
	-tmpFilename:
	  add pid to allow simultaneous use. duh.
	-tar copy:
	  note change in path
	-mvTreeFind:
	  re-enabled File::Spec actions.
	-findUnusedPort:
	  added a 2 second timeout.
  01/02/03 version 2.110
        -fixed to work around perl unicode issues
        -moved tty reopen to more auspicious location
        -makeBackup fixes:
	  explicitly change permissions to allow file renaming.
	  better handling if lock fails.
  12/07/02   version 2.109
        -more fixups for -c -del problems
        -makeBackup: now make lock attempt before renaming so avoid file
           truncation on systems with broken file locking.
        -added no locale line
        -updated copyright date
  11/23/02   version 2.108
        -added ability to set local/remote skip filename.
        -fixup for undesirable -c -del behavior.
        -interactive input: fixup for ignoring skip command.
  11/11/02   version 2.107
       -added check for sufficient disk space
       -added checks for invalid responses for keyboard input
  08/10/02  version 2.106
      mods to better handle manual server starts:
        -always tries a manual connection
        -specification of passcode not necessary
        -fix so server can be started while not in home directory.
  07/14/02  version 2.105
      merge patch from Patrick Ohly:
      	die if error in .rc file
      	fixup for default $rsh setting
      	- server must be asked to do initCheckSum() before changing its work
      	  dir, because path to fsync might be relative
      	- fixed handling of relative path hashSaveFile specification
      	- MakeHashes processing messages: now printed for $verbose>1
  07/14/02  version 2.104
      $pid changes:
      	initialize and check before killing child process (may be none).
      handling of symlinks:
      	properly deal with dangling symlinks specified on cmdline
      	in SyncHash: grab link info from disk for symlinks
      checkHashMiss: always check if times differ (even if $setDate=0)
      fixup in file/hardlink swapping logic at startup
  05/04/02  version 2.103
      cleaned up perl warnings about undefined variables
      changed verbose level of rootDir search
      rootDir search: deal with case of missing spec
      updated test for incompatible version
      updated hardlink/file collision logic: give up on swapping if there
      	are more than two links to the given inode.
  03/30/02  version 2.102
      added symlink *modified* logic.
      removed symlink time tests: can one change symlink times
  03/25/02  version 2.101
      added partial support for saving symlink info in the hashsave file:
      	added readFromHashSave, checkSumString
  03/10/02   version 2.100
       -fixes so dangling symlinks are correctly handled
       -added Exists subroutine to replace perl -e test (doesn't follow symlinks)
  02/23/02   version 2.99
       -cleanup
       -added code to create directory hierarchy in fsyncRename. Necessary
       -because File::Copy is broken on some platforms (Darwin).
   02/17/02   version 2.98
       -added includeList: regexps which are not excluded.
       -added rename feature for symlinks, dirs and files
    01/13/02   version 2.97
       -client: fix for nondirs which had same beginning part of name as full
          directory name.
       -checkError: clear errorMsg
  12/01/01   version 2.96
        - fixed problem with -L -del: files marked as deleted remotely would be
          deleted locally
  11/12/01   version 2.95
	-fixes for ignore actions.
	-now ignore blank lines in .fsync-skip
  11/04/01   version 2.94
        -addressed performance issue with addition of @currentKeys.
  10/28/01   version 2.93
        -ignoreSpec: now delete all spec entries which match given regular
           expression.
        -RemoveDirEntries: now always delete all types with given name.
  10/21/01   version 2.92
         -ign prompt option renamed to IGN
         -ign option now modifies cmd_file: it adds an entry to excludeList
            -> I find this preferrable as it's per-host and the info is
               localized in one place.
         -allow user to modify the regular expression before it is set.
 10/14/01   version 2.91
	 -adjusted verbosity level of skippedList warning messages
 10/14/01   version 2.90
	 -in skippedList processing, call removeDirEntries
 10/10/01   version 2.89
         - fixed dumb bug in dbClientCopyFrom
 10/07/01   version 2.88
         - fix handing of .fsync-skip: now all entries are collected on client
           and server - inconsitencies are weeded out. This previously could
           cause skipped files to appear deleted.
 09/23/01   version 2.87
	 - added mvTreeFind to move directory trees across filesystems
 09/01/01   version 2.86
         - makeBackup: added ugly hack around fact that File::Copy::move 
	   doesn't move directories across filesystems.
 8/30/01   Version 2.85
	 - default Slogfile now placed in home directory
         - verbose output added
 7/28/01 - Perl warning flag enabled. Added handler to ignore uninitiated 
	   value warning checksum prog: value of "none" now disables checksums
         - added checkErrors var and -nc flag: can disable error check call 
	   after each command
	 - initCheckSum now called after server started.
	 - checksum-prog server command added
	 - moved call to chdir to after checksum initialization
	 - added --fast-sync-once combo flag
	 - added cmd_ versions of all flags to allow overiding of rc file
	 - dbClientCopy cmds: added argument specifying if size and checksum 
	   are the same. If only time differs, it does the right thing now.
         - removed setting of $0 in server. Why was this done? It screws up the
           checksum init.
    	 - increased verbose level required to get server commands. Since these
           are commonly echoed back to the client, having many of them impacts
           performance over slow connections.
         - changed backupDir behavior: now use value of "none" to disable
           changed hashSaveFile behavior: now use value of "none" to disable
 6/16/01 - use File:Copy::move to mv across filesystem boundaries.
  	 - maintain hashsave info for symlinks and directories, so 
	   delete propagation will work with these.
 6/02/01 - added followTopLinks functionality (and -ft command option).
         - always send follow-links info- so suspended server has appropriate 
	   behavior.
         - RemoveDirEntries as appropriate if hash collision detected
 5/7/01  - allow command line path specifications to override those in the
	   excludeList.
 4/15/01 - fixed multiple lines installing signal handlers. Ctrl-C behavior
	   during dbCopyFrom fixed.
 4/1/01  - changed #! line to use /usr/bin/env
         - changed passcode file stuff- now used if host and port match
	   those saved.
	 - fixed hash save file reading to correctly handle file names with 
	   spaces. 
 3/24/01 - added -c -del behavior for files (deletion propagation)
         - added in-hash-save server command
 3/4/01  - changed -R/-L behavior and added -del flag
         - added protectShell and now protect the $ character 
	  - fixed merge/diff behavior so temp file doesn't get in sync loop.
	  - fixed so -bd "" means no backup made.
 2/25/01 - merged setOwn funtionality from Jon Hittner.
 2/10/01 - made changes to findHashCollisions. Now is symmetric and
           takes only two fields
 2/6/01  - now use Cwd package
         - fixed chdir($rootdir) location
         - don't open tty if skipFlag is set.
         - added type info field to symlinks
 1/27/01 - changed passcodes from floating point nums to whole numbers
         - changed fsuid code- now fsuid contains the hostname
	  - created changes file 
 1/24/01 - dumb error in dbCopyTo: synced hashes after return...
 1/18/01 - fixed ugly bug whereby hashes weren't properly updated on copyTo
         - merged -fs functionality from Alexey Nogin
 1/15/01 - handle dropped connections better
    	  - changed squence of get-passcode command- so that checksums are
    	    computed simultaneously on client and server if -ns is specified.
         - added FSUID deliniation of hashsave filename- so fsync deals 
           better with syncing to multiple hosts.
         - changed hashsave assignment to happen in [db]copyFrom and
           removed it from makehash: modified status maintained until
           a copy has occurred.
         - added readWithQuit: added suspend capability
         - added syncHash func and sync-hash command so that modified 
           files which are identical have their hashSave entry updated.
 1/9/01  - merged Patrick Ohly's -ns functionality
 11/16/00- added code to check for hash miss in dbCopyFrom/To. Now does 
           copyFrom/To is hash miss is detected.
         - fixed mask in myCheckSum
 10/2/00 - completed ignoreSpec implementation
 10/1/00 - added ignoreSpec - functionality to directory processing
 9/2/00  - fixed cmd_port behavior (again)
         - fixed hardlink behavior when mirroring
 8/30/00 - fixed special character protection when using checkSumProg
         - made some copy messages shorter.
 8/28/00 - fixed bug in -n w/ symlinks
         - better treatment of catastrophic user shutdown: sets
 8/22/00 - added -R and -L mirroring flags. Still needs a bit of work.
           date to epoch
 8/19/00 - unified path specifications into single hash of hashes and 
           added findHashCollisions to remove redundant code. Perl sucks 
           for multi-dimensional arrays.
 8/15/00 - added -nd and -np flags. Inspired by Patrick Ohly.
 8/14/00 - server logfile moved to client host. Removes nasty shell 
           dependency.
 8/12/00 - merged in changes from Patrick Ohly (Patrick.Ohly@pallas.com)
         - enable communication over the rsh (or ssh) connection. Will not
           work if server is manually started.
         - added separate proxyport.
         - added printHash subroutine- to cut out redundant code.
         - fixed permission bugs with (sym)links in server code
 7/25/00 - new dbCheckSum: robust against transposed characters
 7/24/00 - added new algorithm for dbCheckSum. Now differentiates files with
           transposed lines.
 7/12/00 - fixed hashSaveFile bug: by default sent local full path name
         - fixed bug in copyFrom: setting of hashes never happened.
 7/11/00 - fixed problem with files with more than one hard link.
 6/17/00 - delete hashsave entry in Delete
 6/13/00 - fixed -v0 override from command line.
 5/20/00 - fixed protection of special characters in system calls.
         - Many minor fixes for undefined values
 5/15/00 - added code to check for busy ports.
 5/13/00 - changes to allow fsync . in the root directory
         - moved hard link handling after files. hard links are only for
           files. The file must exist for the link to succeed.
         - fixed more issues with hard link handling.
 5/9/00  - added .fsync-skip per-directory path excclusion support
 4/19/00 - fixed space protection for external cksumprog
 4/14/00 - removed "inode" member of filehash in MakeHashes: caused nasty
           in sendHash2D
 4/11/00 - changed to use external cksum program, if available. This
           change provides a huge speedup.
 4/5/00  - replaced get/sendlinkhash/get/sendfilehash with get/sendHash2D
 4/3/00  - added sendLines
         - placed processing links before files (so directory links work)
         - added get-error command to server
 4/1/00  - changed checksum to use the algorithm in ``cksum.''
 3/18/00 - added print size/time statements for targets which exist only
           on one host.
         - changed linkHash: added time element. Can now update newer link.
 3/4/00  - Fixed MakeHash to read dangling symlinks. Also reduced number
           of stat()s required by using ``_'' file argument.
 2/28/00 - redirected stdin from /dev/null for rsh command. This old behavior 
           was somehow removed.
 2/12/00 - Enabled makeBackup for non-files
           added readInteractive
 2/8/00  - removed trailing slashes from fileList
           added skipFlag- for unattended execution. Inspired by S. Hauan.
 1/31/00 - added explicit resyncing of stdin after connection is established.
           This apparently needed when using ssh version 2.
 1/28/00 - fixed bugs in absolute path handling.
 1/16/00 - changed behavior of command-line arguments. Are now interpreted 
           relative to PWD. Also, fully specified path specifications 
           are now allowed. However, the spec must be in the rootdir
           directory hierarchy.
 12/6/99 - fixed bug in which -p option was ignored if $port was specified
           in the rc file.
 12/4/99 - fixed bug in which permisions were changed in dbCopyTo
 11/17/99- fixed bug in interrupt mode of copyFrom
           added -p option
 11/25/99- added default for $hashSaveFile.
           Added delete feature for case when file exists on both local
           and remote hosts.
 10/13/99- changed dbCopyFileFrom to write into proper file name- seems
           better for incremental copying.
 10/12/99- added dbCopy functionality. Allows for smart copying of mail
           files and incremental copying.
 9/21/99 - changed Delete subroutine to call makeBackup instead of unlink
 9/2/99  - added initial support for hard links
 9/1/99  - fixed bug creating remote symlinks- noted by M. Pavese
 7/11/99 - changed all user-settable variables to have work-separation denoted
           by case.
 6/11/99 - added check for open filehandle in clientHandler
 6/7/99  - all reads from STDIN now go through readFlushedStdin- so that 
           garbage typed before a prompt is ignored
         - renamed prompt_filesize to promptFilesize
 6/2/99  - added signal handlers for more gentle exits
         - fixed bug with remroot dir
 5/18/99 - added passcode to increase security for orphaned servers and
           to prevent inadvertent connections.
         - added ClientQuit- a single exit point for the Client
 5/17/99 - added delete command to server
         - changed behavior when file present on one side, and not the other:
           added delete file option
 5/11/99 - changed client connection code to make ssh-tunneling connects
           more robust.
 4/25/99 - added support for filenames with embedded spaces
         - fixed bug in which new files were not entered in the 
           hashSave file.
         - fixed major/minor mode version comparison
 4/19/99 - fixed bug which prevented -n from working
 4/5/99 -  changed format of file hash info. Now sent as one large hash.
        -  Added mod field to fileHash. Flags modification of file from
           hashSave info.
         - Added version flag and version checking
 3/16/99 - added proxyhost variable- useful for ssh connections.
 2/28/99 - added redirect from /dev/null for the rsh command. This prevents
           users from needing to do this in their .fsyncrc
 1/27/99 - fixed server-code bug. Specifying a rem_root dir now works.
 1/19/99 - fixed bug with zero-length files in CopyTo
 1/7/99  - cleaned out old comments and changed most instances of $remhost
           to ``remote host'' in print statements
 12/29/98- change parameters used by the client when connecting to the server.
 12/26/98- changed rsh start to fork- this so that backgrounding is no
           issue. To work better with port-forwarding under ssh.
 10/13/98- command-line remhost specification overrides rc file
 9/17/98 - changed command line interface: server now takes only -v option
           it is not necessary to specify any options for the client
 9/16/98 - added buffering to file copies..
 9/16/98 - added loop in makeHashes: so that directories higher in a heirarchy
           are added to the directory hash
 9/11/98 - fixed bug in server: it didn't recognize the makedir command
 8/31/98 - fixed bug in RemoveDirEntries: added / to regular expression
           so that only path elements which are beneath the excluded dir
           are removed.
 7/27/98 - updated directory behavior: 
           -now sets permissions
           -the user is not prompted for entries further down the directory 
            tree, if s/he chooses not to create the upper-level dir
 6/25/98 - fixed modes before unlink, to prevent failure
 6/13/98 - fixed server code so that it releases the port when a connection
           has been made.
 6/13/98 - fixed hashsavefile bug - where old hash info was lost
 5/12/98 - backup copy support added
