Sync types

The sync type determines how the source and the destination (or, more generally, the bases) are compared and can be changed in the Destination tab of the sync settings. The bases are compared each time a sync is started.

Warning: Due to a bug in macOS, if the source volume (or any of the volumes for a two-way sync) is connected remotely (e.g. via FTP or SMB) and the connection drops during the scan phase, and the option “Remove files not on source” is enabled, files will automatically be marked for deletion, since macOS doesn’t differentiate between a file being deleted or just unavailable. For SMB volumes, this issue could be fixed by Apple in the future; unfortunately they declared they have no plans to improve support for FTP volumes. In the meantime, it is always recommended to manually confirm the changes for sync items involving a remote volume.

One-way sync

The default. The destination acts as a backup of the source, which is never changed by a sync. Files that exist only on the source are always copied to the destination. Files that already exist on the destination are overwritten according to the overwrite policy chosen in the Destination tab of the sync settings. Files that exist only on the destination can be deleted by enabling the option “Remove items not on source”.

Two-way sync

Merge all the bases. All the bases are treated equally: each one is source and destination at the same time. On the first sync, all unique files are copied. Afterwards, files that are only on one base are copied or removed if they have been added or deleted after the last sync, respectively. A modified file (the modification date or file size has changed since the last sync) overwrites the counterpart on the other base.

For two-way syncs, SyncTime saves snapshots of each base after each sync. When comparing a file with the snapshot, SyncTime can determine if the file has been modified in the meantime.

  • First sync: since the snapshots are only created afterwards, a file that is available on more than one base but has a different modification date or size is considered a conflict and an error is logged. To avoid conflicts, it is recommended that all bases are equal before the first sync. One or more bases can be empty or contain a subset of the files, in which case all missing files are added.
  • Following syncs: a file that has been modified on one base can be synced correctly, but a file that has been modified on more than one base is considered a conflict and an error is logged. The conflict can be solved by manually copying the file that you want to keep to the other base.

The idea of a two-way sync is that it always propagates a change performed on a base to the other bases. This is why the overwrite policy is unconditionally set to “Overwrite if timestamp or size is different” and the option “Remove files not on source” is always enabled.

  • Overwrite: when two files on different bases have a different modification date, it doesn’t necessarily mean that the file with the newer modification date is the “right” one: in most cases it probably is, but it could also be that the older file was restored from another backup and meant to replace the newer one, or was modified by another person who is not aware of your changes. For this reason it is required that during the first sync no two files have different modification dates, and that on following syncs only one copy of a file is modified at a time.
  • Remove: when a file is removed from a base, it is also removed from all other bases. This step is necessary, otherwise during the next sync the removed file would be restored.

Shapshots

Snapshots are saved as files with the .tsv extension in

~/Library/Group Containers/8L4NN3ZTVN.org.desairem.SyncTime/Library/Application Support/snapshots

where ~ is your user directory.

Hint: you can show the snapshots in the Finder by opening the File menu or main window context menu and, while pressing the Option key, selecting Show Snapshot in Finder.

One-way move

The destination acts as a mailbox for files from the source. When a file has been copied successfully to the destination, it is removed from the source. Files that are not copied are not removed. Directories left empty after moving the contents are removed as well.