Sync types

The sync type can be changed in the Destination tab of the sync settings. It determines how the source and the destination (or, more generally, the bases) are compared. 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 removed 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. Files that exist only on the destination can be removed by enabling the option “Remove files not on source”.

Two-way sync

Merge all bases. The bases are 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 removed after the last sync, respectively. A modified file overwrites the counterpart on the other bases.

For two-way syncs, SyncTime saves snapshots of the bases after every sync. When comparing a file with the snapshot, it is possible to determine if the file has been modified after the last sync.

  • First sync: different versions of the same file on different bases are considered a conflict and an error is logged, since it is not possible to determine which version should overwrite the other ones. To avoid conflicts, it is recommended that all bases are equal before the first sync. One or more bases may 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 a single base is synced correctly to the other bases, 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 bases.

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 must be set to “If modification date or size is different” or “If modification date 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’s possible that the older file was restored from another backup and was meant to replace the newer one, or it 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.

Snapshots

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.