                          SyncDiscs
                          =========

*************************************************************

                          Disclaimer
                          ----------
David Pilling accepts no responsibility for any loss of data
which occurs as a result of using this program, whether as a
result of correct or incorrect operation. You use SyncDiscs
at your own risk.

*************************************************************


This program makes the contents of two discs or directories
the same. I wrote it to allow me to keep an exact copy of my
hard disc on a removable disc. No doubt it would also be of
use for synchronising a portable computers disc with that on
a main machine.

Clicking on the iconbar icon will reveal a window.

The top three icons can have directories dropped into them.

If Shift is held down the directory name will be appended to
the current contents of the icon, with a comma in between.

If Control is held down the directory leaf will have one
element removed - this is useful if you want to enter the
root directory of a disc.

The first icon is 'Primary' this is the main directory the
one that you want to make the other directory like.

The second icon is 'Secondary' this is the directory which
is to be changed.

The third icon is 'Scrap' - any files which have to be deleted
from  the Secondary directory are moved here. If the scrap
directory is left blank, then scrap files will be deleted.

All three icons can have more than one directory name in,
separated by commas.

A number of options are provided.

These allow any newer files which are found on the secondary to be
copied back to the primary. Another option allows extra files on the
secondary to be copied back. However note that this option may result
in the 77 files in a  directory limit being breached. Overwrite causes
any newer files on the secondary to be replaced by the corresponding
primary file.

Finally a log file can be created showing what has gone on.

The Save button will save the contents of the window -
allowing the same operation to be easily repeated.

The 'compare' button compares the primary and secondary paths, no changes
take place and at the end of the process a text file is opened displaying
the results.


It is possible to call !SyncDiscs with some command line arguments.
You'd do this if you wanted to automate the backup procedure. For
example !SyncDiscs can be run from the !Alarm application.


The arguments are;

-quit              Makes the program execute and then quit
-primary <path>    Set the primary path
-secondary <path>  Set the secondary path
-scrap <path>      Set the scrap path

-log <file)        Set the log file name
~log               Turn off logging

-extra             Copy extra files from secondary to primary
~extra             Remove extra files on secondary

-newer             Copy newer files from secondary to primary
~newer             Don't copy newer files from secondary to primary

-over              Overwrite newer files on secondary
~over              Don't copy older files from primary to secondary



Missing command line arguments default to the configured values.
For example if no -log argument is provided, the value entered in the
window is used.




David Pilling


Release 1.01 05/11/97


Fixed problem where some times are not compared correctly

Release 1.02 19/11/97


Previously SyncDiscs ignored the case where the primary had a directory (or
file) and the secondary had a file (or directory) with the same name. It now
makes the secondary have same form as the primary. So after a SyncDiscs run,
the secondary will have the same object type as the primary.

No attempt is made to do a copy from secondary to primary in this case.

Release 1.03 22/01/99


The variable SyncDiscs$Result is set to 1 or 0 depending on whether an
operation failed or succeeded.

It is possible to have a text file called

!SyncDiscs.Resources.Zone

each line in this should be the left hand part of a path that you want to
be ignored by SyncDiscs. This is an example Zone file line

ADFS::HardDisc4.$.xxx


Release 1.04 24/05/01


There is a bug... If a synchronisation operation ends due to the source
directory not existing then a subsequent synchronisation operation may
crash.

Fixed.

Release 1.05 04/08/02


Compiled for 32 bit RISC OS
Added Overwrite functionality

Release 1.06 05/11/02


There is an additional variable in the Config file. TimeRes is a time in centiseconds.
This time is the resolution used when comparing time stamps. The motivation is that
different file systems have different time resolutions. If you are backing up to
a file system which has a resolution of 2 seconds from which has centisecond resolution
false copying will occur in one direction or another.

Setting TimeRes to 200 will ensure that only files whose times are different
by more than 2 seconds are candidates for synchronisation.

Another addition is to check file lengths as well as times when looking for changes.


Release 1.07 30/11/02


A new button 'compare' compares the primary and secondary paths, no changes
take place and at the end of the process a text file is opened displaying
the results.


Release 1.08 28/12/02


The contents of what can be in the zone file have been extended. It is now
possible to match the right hand side of paths by putting three dots before
the file name.

So 

...tempfile

will make any file called 'tempfile' be ignored. However the utility comes
with the addition of wildcards in the zone file. * to match any number of
characters and ? to match one.

Putting all this together, one can ignore all compiler o files with a zone file entry of

...o.*

This feature should be considered developmental, since it only works if the
individual files are actually seen by the program. If for example the
secondary has no 'o' directory then that will be copied whole.


Release 1.09 17/01/03


Made SyncDiscs work with filing systems where the file names are not
enumerated in alphabetical order e.g. DOSFS. In other words it may now be
useful for backing up to a Windows system.


Release 1.10 06/09/06
