Follow hard and symbolic links and Finder aliases

While following hard links is supported, symbolic links and Finder aliases are not. This is a standard behaviour for sandboxed apps from the Mac App Store and cannot be circumvented.

If you want to copy files pointed to by a symbolic link or a Finder alias, you can create separate sync items taking care of these files.

Confirmation dialog

The confirmation dialog, which is displayed by default for new sync items, shows all the changes that will be applied during a sync grouped by files to be removed (left tab), overwritten (center tab) and added (right tab).

By default, while the name of regular files is always displayed in black, names of directories can be a light grey color to show that they will not be created or deleted: in the Remove tab, grey directory names won’t be deleted (but contents with a black name will) and grey directory names in the Overwrite or Add tab will not be created because they already exist.

The modification date of directories whose contents have changed is also synchronised according to the overwrite policy. An optional dot “•” in the Size column indicates that only the destination date of a directory is going to be synchronised (and no contents are added or removed).

If the option “Always synchronise tags” in the Destination tab of the sync item settings is enabled, files whose tags will be copied will appear in grey and show a dot “•” in the Size column to indicate that the actual file will not be transferred.

Sync item groups

For each sync item you can define a list of groups it belongs to from its settings panel. The popup button on the right side of the toolbar shows a list of all groups that is automatically updated whenever a sync item’s groups are modified and is meant as a way to filter sync items.

For example, groups could be used to separate sync items based on their destination device, so that when connecting that device you can select the corresponding group and select the sync items all at once. Another possible scenario is when you want to distinguish between sync items needed at home or at your work place.

The status bar menu also contains an item “Sync group” which will run all sync items in the selected group.

Dependencies

Starting from version 2.5, sync items can be dependent on each other. In the Advanced tab of a sync item’s setting, you may add a dependency by selecting the “+” button in the respective text field or by typing a sync item’s title.

When starting a sync item which has one or more dependencies that haven’t been completed yet (i.e. they have no green badge), those will be run first. As soon as all dependencies are successfully completed, the sync item will start running. If a dependency encounters some errors or is canceled, the sync item will be delayed until the dependency is completed.

You may create dependency chains as long as they are not circular. For example, sync item A can depend on B which in turn can depend on C, but C cannot depend on A since it would create a circular dependency. Sync items causing a circular chain are automatically disabled in the dependencies menu.

When starting a sync from the context menu or the toolbar, you may hold the Alt/Option key in order to temporarily disable the dependencies.

How to deal with sync errors

It can happen from time to time that a sync reports an error. There can be various reasons for such errors (file permissions are the most popular one). Unless the error is due to the source or the destination being disconnected, the sync will try to continue until the end.

A common source of errors are hidden system directories like .DocumentRevisions-V100, .Spotlight-V100, .TemporaryItems or .Trashes. These directories are usually located at the root of a device or in your home directory. It is not recommended to backup the entire filesystem (which includes system directories like /Library or /System that usually don’t hold personal data), but rather selected directories inside your home directory. If you still think that you need to backup directories containing one of those protected items, you can exclude them by either excluding hidden files or manually selecting them in the Exclude tab of the sync item’s settings.

It is always recommended to have a look at the error log, which can be opened from the context menu when right-clicking the sync item. The error log provides information about which files caused the error. Particularly for two-way sync items, it is strongly recommended to sync again by carefully going through the confirmation dialog and making sure that no unique file is going to be copied or removed because of the previous error.

Export sync items

Starting from version 2.2, the sync items can be exported, so that you can reimport them at any later time, on any Mac. Exported sync items will be saved as a file with the “.sync” extension.

To export all sync items at once, simply select the “Export” menu item from the status bar menu. You’ll then be asked for the location where you want to save the file. To export only the selected sync items, just drag them onto your Desktop or a Finder window, and the save file will be automatically created.

To import the sync items from a previously exported file, you can either double-click it or drag it into the main window. You’ll then be asked to confirm the sources and destinations of all imported sync items, so that their locations can be securely stored. Starting from version 2.6, directories which are not mounted at the time of the import do not have to be immediately confirmed; the confirmation dialog will instead appear as soon as they are available again.

Enable logging

Starting from version 2.2, SyncTime can output a log so that you can closely track what it is doing. This is especially useful for debugging purposes. At the moment, log messages are output only during the scan phase (i.e. the initial comparison between source and destination).

To enable logging, please follow these steps:

  1. Open a Terminal window. You can find the Terminal inside the /Applications/Utilities folder.
  2. Right-click the SyncTime app symbol (you’ll find it inside the Applications folder) and select “Show package contents” to navigate inside the application package.
  3. Drag the file “Contents/MacOS/SyncTime” to the Terminal window.
  4. In the Terminal, type “-log” and press Enter. SyncTime will open as usual.

You’ll notice that when starting a sync, a lot of messages will appear in the Terminal. These can also be inspected from the Console, which you find again inside the /Applications/Utilities folder.

Sync types

The sync type determines how the source and the destination are compared and can be changed in the Destination tab of a sync item’s settings.

  • One-way sync: the destination acts as a backup of the source, which is never changed by a sync. This is the default sync type. 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 settings. Files that exist only on the destination are deleted only if the option “Remove files not on source” is enabled.
  • Two-way sync: merge source and destination. Files that are only on one side are copied if they have been modified * after the last sync or deleted if they have been modified before the last sync: this way, deleted files are not going to be restored with the next sync (except for the first sync, where all unique files are copied). If a file exists on both sides and one of them is overwritten, any changes to the other file will be lost since no merging is done inside the files themselves.
  • One-way move: the destination acts as a mailbox ingesting files from the source. As soon as a file has been successfully copied to the destination, it gets removed from the source.

Please note that source and destination will be compared each time a sync is run (in particular, each time the app is launched).

* If the file is indexed by Spotlight and the “date added” attribute is available and indicates a date later than the last sync date, the file will be copied even if it wasn’t modified after the last sync, which is the desired behaviour. Since this attribute is not always available, caution is recommended when moving or renaming files managed by two-way syncs. If the attribute is not available and you want to add a file that has been modified before the last sync, you will have to copy it manually to both the source and destination or add it to the source while the sync is running in background, otherwise it could be erroneously deleted. Starting from version 2.4, you can also move a file to be deleted to the copy list and vice versa from the context menu in the confirmation window.

Please note that due to an issue in macOS 10.12 (Sierra) and later, the date added will not be set on renamed files, so that in two-way syncs they will appear in the delete queue by default. In this case, please move any renamed files manually from the delete queue to the add queue from the context menu in the confirmation window. Renaming files while a sync item is watching the source in background is safe. One-way syncs and one-way moves are not affected.

Action after all syncs have completed

Starting from version 1.1.4, you can define whether your Mac should go to sleep or shut down after all syncs have completed (requires macOS 10.8 or newer). Starting from version 2.4.5, you can define arbitrary scripts to be executed after all syncs have completed.

To enable the menu items in the status bar menu, please follow these instructions:

  1. Open the AppleScript Editor (located in /Applications/Utilities).
  2. Create appropriate Applescripts by copying the codes given below into the Editor and saving them, for example, on the Desktop. Starting from version 2.4.5, you may create your own scripts with arbitrary filenames.
  3. Move the newly created files into “/Users/yourusername/Library/Application Scripts/org.desairem.uSync”. You can navigate to the Library folder by opening a Finder window, selecting the menu Go To and, while pressing the ALT/OPT key, selecting the Library menu item.
  4. The menu item corresponding to the file you’ve just created is now enabled.

Codes

The sleep script is a file named “sleep.scpt” with the following code:

tell application "System Events" to sleep

The shut down script is a file named “shutdown.scpt” with the following code:

tell application "System Events" to shut down

Synchronise in background

Starting from version 1.1, you can enable the option “Once synced, keep synced in background” in the Advanced tab of a sync item’s settings. After the sync has been run as usual, files will be automatically transferred as soon as they are created or modified on the source (or removed, if the option “Remove files not on source” is enabled). For a two-way sync, this also applies for the destination.

A background sync will run indefinitely and cannot be restarted until canceling it from the context menu. Canceling a background sync will stop it from monitoring future changes.

Please note that after restarting the app, a sync will compare the whole source and destination again before monitoring for changes in background. While the changes for this first sync have to be confirmed by default, background changes are always applied without confirmation.

Please note that changes on a volume can only be detected when they are performed from the local Mac. This functionality is based on a macOS feature that works best when performing file operations inside the Finder and document-based apps and works for Terminal command such as touch, copy and move as well. If you find a use case that does not trigger background syncing, please visit the Contact page.