ABSync 2.8 (09/2007)
This is free software. Use it at your own risk. Distribute it freely as long as you don't earn money with it. Only distribute ABSync as the installer file.
You can use ABSync without paying a license fee, use it on as many computers as you want. However, ABSync contains a nag screen which appears after you used it some times. You can donate 8 EUR with PayPal to get a code to disable it. This will help me to find the time to further improve ABSync with new functions and bugfixes. Donate to ABSync and Get the Code!
What's This?
ABSync synchronizes two directories. It's mainly used to synchronize files between a stationary computer and a laptop or an external harddisk drive.
A special feature is that it saves the current state to files. Therefore it can detect exactly which files were changed since the last sync.
Whereas other directory sync tools only compare the current state of two directories, ABSync compares the current state at each directory with the old state and performs the same changes at the other directory.

And What's so Special About It?
Lets's have a look at the actions ABSync performs, depending on what happened to each single file since the last sync:

And here's an example. The left part shows two sides A and B with changes that are made manually. Some files are deleted, others are modified or created.

The right side shows what your directories look like after a sync. As you can see, the deleted file at A is also deleted at B. The created and the modified file at A are both copied to B. The modified file at B is copied to A, even if it was deleted at A in the meantime.
To detect which changes occurred at both sides, the current state is saved to ABSync SYSTEMID SETNAME.dat files. The filename, size and age of each file is stored in these files to detect changes at the next sync.
Usage
Creating a Set with the Wizard: When starting ABSync the first time or after pressing the Wizard button in the Set Editor, the Wizard starts, which guides you through the process of defining a new Set. A Set contains the path of the directories you want to sync and some options.
First Sync: After defining a Set, you can start the first Sync. If one of the directories is empty, ABSync will copy all files from the directory which contains files to the one which doesn't. If both directories contain files, make sure they contain exactly the same files (differences are logged in case they are detected). If both directories contain the same files after this first run, ABSync writes state files to the directories, which are a snapshot of all files you have in the directories.
Further Usage: After state files are created, you can create, change and delete files and directories at one of your directories. When starting ABSync afterwards, it will find the differences and perform the same changes at the other directory.
Abort Sync Process: It is possible to interrupt a sync process. After clicking on the Sync button while the sync process is running, you are asked if you want to abort. Abortion is possible after a complete file is copied. In case you abort a sync, no state files are saved. When you sync again, the sync can be resumed by only copying the remaining files.
Set Editor
In the Set Editor, you can define the Sets, which contain the paths of the two directories you want to sync, excludes and includes and some options.

Here's what the options mean:
- Ignore 1h Diff: When you switch from Summertime to Wintertime (or vice versa), the displayed file times on a NTFS volume change, the file times on a FAT volume don't. To prevent detecting wrong changed files, you can turn on the Ignore 1h Diff option.
-
- Ignore 1s Diff: Timestamps for files are based on different values. Some programs wrongly change the timestamp of a file by one (as the FAT timestamp value, which are 1/32 minute) sometimes. This especially happens when copying files to a shared samba drive. To ignore this little difference, switch this option on. If you only use programs, that correctly copy the timestamp (like ABSync does), you can switch the option off.
- Ignore Read Only State: If this option is on, files that are read only are deleted and overwritten without a warning. If the option is off, you are asked what to do with these files at the end of a sync.
- Sync Hidden Files, Sync System Files: If these options are set, files with these attributes set are also synchronized. I suggest to set these options once before the first sync and not to change them afterwards. If you change these settings when the state files are already created, ABSync could do what you didn't have in mind. (Imagine that you switch off Sync Hidden Files. A file with this attribute set is then not "seen" anymore and is detected as deleted.) If you want to change one of these options, I suggest to sync the files with the old setting, delete the state files, change the options and start the new sync.
- Binary Comparison: When there are new or modified files on both sides, ABSync must check if these files are the same to avoid overwriting changed files. Such files are listed in the Critical Files Summary at the end of the normal sync operation. If the Binary Comparison option is turned on, files are also compared byte by byte to check if they are the same. If the option is turned off, only the file size and age is relevant. It is useful to turn this option off if you frequently abort a sync operation before it is finished, so not all the files that are copied have to be checked again when you resume the sync process later. In all other cases, it is recommended to leave this option enabled.
- Check Free Space: If this option is on, the free space is checked before changing anything. It can be useful to disable this option because some network directories show wrong values.
- Excludes / Includes: Defining excludes and includes is described in the following section.
Excludes and Includes
With the Exclude / Include function of ABSync, you can specify which files below the two selected directories are synced and which are ignored. The behaviour I chose makes it possible to make even complex selections. It is possible to exclude / include directories, single files or setting a file mask in the format HEAD*TAIL (e.g. exclude all *.bak files).
Note: You can use the dir/file browser to insert an exclude string for an existing file or directory. Click on the icon next to the text field to open it.
Please note that this is some kind of expert feature. You should exactly imagine what happens with your current setting. If not, it could lead to unwanted overwritings or deletions. That's especially important if you change the settings when you already synced the two directories some times. For testing purposes, I suggest to switch on the Simulate Sync option or to sync two temporarily created directories.
And here's what ABSync does with the excludes and includes you defined:
- ABSync first creates the current set of files through reading the disk or loading an old state file.
- It marks single files (internally) as to be excluded or included in the order of the entries in the Exclude/Include Editor.
- After processing all your specified Exclude/Include entries, the marked files are deleted from the (internal) set which means they are ignored.
Example 1

 |
- Archive is excluded with all subdirectories
- Source is excluded with all subdirectories, except Uwe
- Don't exchange entries 2 and 3 in the ExcInc-Editor. In that case, all directories below Source will be excluded, also Uwe.
|
Example 2

 |
- all subdirectories of Music are excluded, but Music itself is included
- as above, Uwe is included
- all files that match the file mask *.tmp in Uwe, are excluded
|
Critical Files Summary
A special case is when ABSync detects a file changed or added at both sides. This shouldn't happen usually, but if detected by ABSync (e.g. you have copied the same file to both directories manually), it compares size, age and content of the files. Only if the files differ in at least one of these points, it adds the file to the critical files summary which is shown at the end of the sync process. Files where ABSync isn't sure what to do because of their attributes (delete Read Only File if not allowed without warning etc.) are shown in that form, too.

Command Line Usage
After you saved a pair of directories as a set, you can start a sync with the following syntax:
ABSync.exe {Set} [/quit]
For example, if you want to start ABSync and sync the set "Test Set", you can type
ABSync "Test Set"
at the command line (or create a shortcut on your desktop with this parameter). If you want to start ABSync, run the Set "Test Set" and quit afterwards if the job was done without errors, type
ABSync "Test Set" /quit
Automatically Sync Removable Media on Connect
The command line support makes it possible to automatically sync your media (external harddsik, zip-disk, USB flash drive etc.). Sample files can be found in the Sample directory of ABSync.
Win 9x, Win ME, Win 2k
- Start ABSync the usual way, save the directory pair as a Set and sync your drive.
- Create an autorun.inf on the removable media with the following content
[autorun]
icon=harddisk.ico
Open=C:\Programme\ABSync\ABSync.exe "My USB Harddisk"
Remove the line defining the icon if you don't have one. Insert the right directory for ABSync and the Set name. You can add /quit to the last line if you want to close ABSync automatically after a successful sync.
- ABSync should now sync the device at each connect.
Win XP, alternative usage for all systems and sync on disconnect
Windows XP doesn't support starting a program that's given in Autorun.inf on removable media because it wants to analyze which files are on the media and then suggest an appropriate action. To make starting a program even work on Win XP, and as an alternative for all Windows systems, follow this description:
- Download and install the c't USBAgent.
- Create a usbagent.inf on the removable media with the following content
[usbagent]
ON=C:\Programme\ABSync\ABSync.exe "My USB Harddisk"
OFF=C:\Programme\ABSync\ABSync.exe "My USB Harddisk"
Delete the last line if you don't want a sync on disconnect. You can add /quit if you want to close ABSync automatically after a successful sync.
- ABSync should now sync the device at each connect and optionally before each disconnect.
Note: Because running ABSync needs some time, Windows may tell you that it couldn't disconnect the device. Simply try to disconnect the device a second time, the USB agent won't run ABSync another time.
Star Formation Sync
Do you use a USB flash drive to transport files between your PC at home and your PC at work? Do you want to keep more than two media or PCs in sync? Here's what you need!

Star Formation Sync means that you have a removable media you carry around and sync it with different PCs. That's what you have to do:
- Install ABSync into the same directory on all PCs.
- Do not install ABSync onto the removable media itself! Do not copy the INI of an installed ABSync from one PC to another! Every PC gets a System ID automatically at the first start of ABSync. This ID is used to detect at which PC the media was inserted. To make sure the different PCs have a different System ID, look into the About window.
- Save the directory pairs as sets with the same name on each PC. The directories on the different PCs and the drive letter of the removable media can be different. You can use the Load / Save function (To File / From File buttons) to transfer settings to another PC.
- Copy the files you want to sync manually to all PCs and the removable media (the same as in Usage).
- Run the initial sync at every PC. ABSync state files are named ABSync SYSTEMID SETNAME.dat and are never synced, so a foreign state file doesn't confuse a sync.
- Now you can sync the files you carry around very easily with the different PCs.
- If you set up the Auto sync on connect and disconnect as described above, it is even more comfortable. Note that the correct state file is automatically used at each PC because the PCs are detected by the System ID. Therefore, the same command in Autorin.inf / usbagent.inf works for different PCs.
Limitations
- ABSync only compares files. Directories are created automatically and all empty directories are deleted. But it won't synchronize a changed date of a directory.
- File times are only compared with the limited accuracy of 2 seconds, which is the precision on FAT filesystems.
FAT filesystems store the last file write time as a 32 bit integer with 2 seconds accuracy in Systemtime (counting from 1980-01-01). On NTFS, creation time, write time and last access time are stored in UTC with 100 nanosecond accuracy as 64 bit integers (counting from 1601-01-01). This means if you copy a file from a NTFS volume to a FAT volume, the (only one FAT) file time may be different from the one it should be. To make it simple, I only use the limited accuracy of 2 seconds - even on NTFS disks.
- Attributes aren't synced. You can select to ignore hidden or system files, but ABSync wouldn't detect that e.g. you set a Read Only attribute.
- On network drives, the file size check doesn't work and therefore it is always disabled.
INI File
The directory sets, the System ID, the last set used and the window position are saved to an ini file in the ABSync directory.
Every PC on which you start ABSync gets a System ID that represents the current time at the first run of ABSync. The precision is about 1/100 sec., so it's rather unlikely that two identical IDs are created. The ID is saved in the ini file. If you ever have to set the ID to a special value, you can edit the ini file. This shouldn't happen usually. You can also check the System ID in the About Window.
Changelog
V2.8 (09/2007)
- New option to ignore file time differnces of <= 2 seconds. This option is useful when using buggy programs that change the timestamp copying files to a samba shared network drive.
- New link to USBAgent website.
- Bugfix:: Files that were changed on both sides are usually compared to save copying them. For this special case, the option Ignore 1h Diff was not considered. From now on, both the Ignore 1h Diff and Ignore 1s Diff options are considered.
- Bugfix: Files that are not actually copied since they differ at both sides are excluded in the ETA calculation. This means ETA and speed are now always accurate estimations. Especially when you interrupted a sync and carried on later, the estimations were fairly off the actual time.
V2.7 (01/2007)
- It is now possible to interrupt a sync process by clicking on the Sync button while the sync process is running.
- New option "Binary Comparison" to disable comparing files byte by byte. Previously, binary comparison was always enabled. This remains the default setting from now on.
- Bugfix: When creating a Sync Set with the Wizard, the checkbox "Check Free Space" was not turned off properly when a network drive was selected.
- Bugfix: When the consistency check did find any inconsistencies at the end of the sync, the differences were not logged in the error window.
- Minor cosmetic changes: The filename that is copied is now listed in the log before copying the file starts. This was changed to be able to see which file is copied when the file is really big and the copy process takes some time. The file count in the status bar is now changed to the format with separators.
- Bugfix: As intended, empty files are deleted at the end of the sync process. By now, this step included all directories under the given root directories. Excludes were not considered here. The internal implementation for deleting empty directories is now different, so that from now on, excludes defined in the Set Editor are correctly used.
V2.6 (10/2006)
- Bugfix: In some cases, when an error occurred in batch mode, the main window was closed after the failed sync (as if the sync was successful). This could mean the user doesn't notice that something went wrong. The next sync could then be complicated, because the user would be responsible to change the files to a consistent state manually. From now on, the main window doesn't close when an error occurs in batch mode.
V2.5 (12/2005)
- Double buffering for the main window was activated. This should remove the flickering of the big sync button while syncing.
- Bugfix: There was an error in the necessary disk space calculation. The size of the files that would be deleted before copying wasn't considered. This bug was especially a problem when syncing to a drive which was almost full.
V2.4 (04/2005)
- Bugfix: A bug in the (new) internal comparison operation of file sets let ABSync crash sometimes or wrongly detected files as changed. (This couldn't lead to deleted/overwritten files, but the sync process stopped.)
V2.3 (03/2005)
- The internal comparison operation of file sets (used for making a list of added/deleted files and as a consistency check) was speeded up drastically.
- Bugfix: In the first sync (when the synchronization only consists of one copy operation), all the progress bars were visible all the time.
- Bugfix: The first row (progress bar etc. for "Delete at A") was used for both delete operations.
- Bugfix: The both delete operations were twisted compared to the progress display rows.
V2.2 (01/2005)
- Bugfix: Changing Windows' font size resulted in badly formatted dialog windows. Now the font size should be small even if large fonts are enabled.
- Bugfix: The copy thread crashed when a file with 0 bytes size existed.
V2.1 (06/2004)
- New option Hide Excluded Files makes the (possibly many) lines "[Ignoring file]...." in the log disappear.
- Bugfix: A wrong value of copied/deleted files was shown when size was > 2 GB because of an overflow. ABSync now shows the correct value.
- Bugfix: When changing the backup set in the main window, the message "access to directories not possible" in the status bar wasn't updated correctly.
V2.01 (01/2004)
- http://www.absync.de will no longer be available. The new web location of ABSync is on my homepage www.uwe-freese.de. All links were changed in this version.
V2.0 (06/2003)
New major release with many improvements!
ABSync remains free to use. But it contains a nag screen which appears after you used it some times. You can donate 8 EUR with PayPal to get a code to disable it. This will helps me find the time to further improve ABSync with new functions and bugfixes.
Set Editor
- New Set Editor window for configuring directories, excludes and other settings, which simplifies the main window.
- Practically unlimited number of excludes and includes.
- Dir/File browser for excludes/includes.
- Wizard for creating sets, the wizard is automatically started when ABSync is started the first time to simplify first-time usage.
Sync Process
- At the first sync, the two directories had to contain the same files. Now it is also allowed to select an empty directory at one side. All files are then copied to this empty directory. It's even allowed to select two empty directories. (Non existing directories are created if needed.)
- Wildcard support in a simple form (HEAD*TAIL) in excludes/includes.
- Progress bar, ETA and speed display for Sync process.
- "Sync Simulation" option to show what would happen without changing anything.
- Files that were changed on both sides (and led to a "critical error" in previous versions) are now shown in a Critical Files Summary at the end of the sync process. The user can then decide what to do with these files.
- Read only files aren't deleted / overwritten without warning anymore. They are shown in the same dialog at the end of the sync process and the user has to decide what to do. If the "Ignore Read Only State" option is set, Read Only files are deleted / overwritten without warning.
- Options to Sync Hidden and System files. If not set, these files are completely ignored.
- (Hopefully complete) error checks for deletion and copy process. Errors are logged to the error log and a message box is shown.
- New option "check free space before copy" which makes sure there's enough space on the drives, selectable for both A and B.
- Aborting in case A is subdir of B or vice versa.
- The path for directory A and B now have a backslash at the end for having the equal format as a path in the excludes.
GUI / General
- New Homepage http://www.absync.de.
- ABSync is now distributed as a installer (.EXE), which creates icons and adds uninstall support.
- Nicer GUI: XP Styles, smaller sync button, main window name and program name in Task bar (ABSync - SETNAME), smaller main window, activity and error log switchable (only one log visible at a time, which reduces the needed space for the logs), buttons with icons, additional windows and much more.
- Log files are named ABSync Log yyyy-mm-dd hh.mm.ss.
- Automatic window positioning places the forms next to the others if there's enough space.
V1.2 (05/2003)
- excludes and includes
- Sets (including the Exclude/Include settings) can be saved to and loaded from files
- Ignore1hDiff Option
V1.1 (03/2003)
- directory sets can be saved and selected easily
- command line support, which makes it possible to sync a removable media on every connect
- every PC gets a System ID at the first run of ABSync
- ABSync state files are now named ABSync SYSTEMID SETNAME.dat and not ABSync.dat. This makes a so-called star formation sync possible.
- Close button and Save Logs to Files button are already enabled if the result of a sync is shown. You can now close ABSync directly after a sync, not only after pressing OK.
V1.01 (03/2003)
V1.0 (01/2003)
Thanks
Beta testers and people that read the documentation were Sönke Lütjohann, Michael Schopferer, Oliver Frietsch, Maik Schmidt. Thank's for testing ABSync!
Contact
EMail: mail@uwe-freese.de
WWW: http://www.uwe-freese.de
Windows, Windows 98, Windows ME, Windows 2000 and Windows XP are registered trademarks of Microsoft.