Assuming all synch options are turned on in settings:
** First Sync **
- JBSynch compares Source to Dest. Takes note of what files are in Source that are not in Dest. Schedules missing files to be copied to Dest.
- JBSynch then compares Dest to Source. Takes note of what files are in Dest that are not in Source. Schedules missing files to be copied to Source.
- No deletes occur during first sync regardless of what's specified in Settings.
- Saves a "snapshot" of both Source and Dest in jblib.dat in both folders.
** Subsequent Syncs ***
- Loads Source-Snapshot.
- Compares Source to Source-Snapshot. Takes note of new files, deleted files, modified files.
- Loads Dest-Snapshot.
- Compares Dest to Dest-Snapshot. Takes note of new files, deleted files, modified files.
* Note initial comparisons happen between the folder and it's last snapshot... NOT between Source and Dest per se. This allows to accurately keep track of new files, deletes etc. If not, if Dest is missing fileX there would be no way to tell whether fileX should be deleted from Source or added to Dest.
- Synchronization. Copies New Source files to Dest. If file exists in Dest it gets overwritten if date is older (this is a mod). Deletes files from Dest that have been deleted in Source.
- Synchronization. Copies New Dest files to Source. If file exists in Source it gets overwritten if date is older (this is a mod). Deletes files from Source that have been deleted in Dest.
- Saves a "snapshot" of both Source and Dest in jblib.dat in both folders.
As is mentioned above, libraries are "snapshots" of the Source/Dest folders taken at the end of each synchronization. They are stored in Source and Dest as "JBLib_XXXX.dat" and are maked as 'hidden.'
JBSynch 2.2 and later can maintain multiple libraries for folders. Each library is given a unique ID which is linked to the JBSynch Config file you used. You can create multiple configs for folders. This allows you to do things like synch PC1 <-> AJB and AJB <-> PC2. Originally JBSynch only maintained one library for Source and one library for Dest. Since comparisons happen between the folder and its last snapshot not between the Source and Dest per se, some scenerios were impossible: PC1 <-> AJB then PC2 <-> AJB for instance. The second synch would not be accurate because AJB's snapshot had been updated during the first synch. JBSynch 2.2 and later correct this by maintaining unique libraries for each config (you create new configs using File|New in JBSynch's main window).
Since JBSynch "remembers" what files have been added, it will not try to synchronize files in the future that have been excluded somehow in the past. For instance, you excluded an entire folder during synchronization. Later you change your mind and want to synch the files in that folder. JBSynch will NOT synch the files!!! It will not synchronize that folder because it doesn't see the files in that folder as having been "added." To synch the folder you must RESET the libraries. You can do this by selecting "File|Reset Libraries" in JBSynch's main window.