fds (Fast Directory Synchronizer) by Tormod Tjaberg 

email: tjaberg@online.no
www  : http://home.online.no/~tjaberg

Copyright (C) 2005 Tormod Tjaberg

description
===========
fds is a command line program which allows 
you to easily synchronize two directory structures.

Typical usage is to synchronize against backup media,
but it may also be used to create the initial backup by
using an empty directory as the destination.

fds will recursivly compare the two directory structures
mirroring the source directory at the destination. If
differences are discovered the files will be copied to
the destination, if directories are missing they
will be created, if files or directories are superfluous
they will be deleted.

fds also features a pedantic mode where all equal sized
files are compared byte by byte to determine if they are
different.

note 1: 
The executable within the archive is a WIN32 binary.

note 2:
File attributes like RAHS are not preserved. The reason
for this being compatibility and compiler issues. 

See the file: copyfile.c around line 266 for a more
thorough explanation.

usage
=====
Copy the executable to a directory which is in your PATH.

issue the command:

fds source_dir destination_dir

Caveat:

Assume we have two directories where one is empty:

fds /foo /empty_dir    - Will mirror /foo in /empty_dir
fds /empty_dir  /foo   - Will completly erase foo because empty_dir is empty

options
=======
-n  No deletion of files or directories will be done.

-p  Pedantic mode, compare equal sized files byte for byte. 

-s  Simulation mode, perform all analysis but change nothing.
    Simulation mode automatically enables Verbose mode.

-v  Verbose mode, display the commands which are being performed on each file. 
    
-S  Display Statistics. Show elapsed time and various file statistics.

-l  Follow Symbolic links, this option is only available on unix targets.

compiling
========
The source code should build on any target which has a 
gcc compiler. It has been tested on:

. Win32 (MinGW)
. Linux (Fedora Core 3)
. Solaris 2.8.

I have included two makefiles.

makefile      - for mingw
makefile.unix - for unix 

To avoid a lot of complaints under unix unzip the 
archive with the -a option which will auto convert
any text files.

credits
=======
. Annette for being what she is...
. AT & KT for just being...
. All my testers and proofreaders
