Control SyncTime with AppleScript

To view the available AppleScript commands, open the Script Editor app (in /Applications/Utilities), then select File > Open Dictionary… and choose SyncTime in the application list.

Run sync item

tell application "SyncTime"
    run sync item "Documents Backup"
end tell

Run sync group

tell application "SyncTime"
    run sync group "Home"
end tell

Why is CPU usage so high during syncs?

CPU usage can increase linearly with the number of syncs running in parallel. CPU usage can also vary depending on the speed of the involved volumes.

If you have several syncs running in parallel, you can try to run them sequentially to reduce the amount of resources used at the same time. Some possibilities are:

  • Combine sync items with a common parent directory. Set the parent directory as the source, then add it as an explicitly excluded file and the desired subdirectories as explicitly included files. You can read more about this technique in Filters.
  • Create a dependency chain. When it’s time to sync, start the first sync item. When it has completed, it will trigger the next one, and so on. You can read more in Dependencies.

Why does it read “last sync: none” even if the files are already synced?

It means that the sync was never completed successfully. It may look like all files are already synced, but some files may be missing or synced incorrectly. On the side of the sync item you should see a button with the error count: clicking on it will show all the errors that happened during the last sync. For more information, see Sync errors.

When a sync completes without errors, the last sync date is updated accordingly.

How to connect to Slack?

Among the scripts that can be executed when a sync completes, SyncTime allows to install one that sends a Slack message. When installing the script, you are prompted for the webhook link to which the messages are to be sent. The webhook link can be generated after creating a Slack app.

To create a Slack app, visit https://api.slack.com/apps. Select “Create an App”.

In the dialog that opens, select “From scratch”.

Fill out the field App Name with a name, such as SyncTime, and select a workspace in the drop down button below. Then select “Create App”.

After creating the app, scroll down and select “Incoming Webhooks”.

Toggle the button on the right to activate incoming webhooks.

Scroll to the bottom and select “Add New Webhook to Workspace”.

On the following page, select the channel that you want the messages to be posted to, then select “Allow”.

After returning to the previous page, select Copy under the Webhook URL table, beside the previously selected channel name.

You can now paste the webhook link in SyncTime and proceed with the script installation.

Sort sync items by relevance

By default, sync items can be sorted manually by dragging them to the desired position. You can change how sync items should be sorted from the main window toolbar.

SyncTime can sort sync items by relevance. When the relevance of a sync item changes, its position is rearranged accordingly. The different levels of relevance are defined as follows, from high to low:

  • the sync is running or monitoring for changes in the background
  • the last sync has one or more unresolved errors
  • the sync item is new, was never completed, or is waiting for dependencies to complete
  • the last sync was cancelled
  • the next sync schedule (the sooner, the more relevant).

If two sync items have the same level of relevance, they are sorted alphabetically by title.

Track moved files

By default, tracking of moved files is disabled. (Moved files include renamed files as well.) You can enable the corresponding option in the Advanced tab of the sync settings.

When you move a file and this option is disabled, SyncTime will see the old file as removed and the new one as added, so if the file contents did not change, the entire file will be copied again. (If the option “Remove files not on source” is disabled, the file with the old name is preserved along the file with the new name.) This is a minor inconvenience if you rarely move files, since tracking moved files requires the creation of snapshots that occupy additional space (see below).

When tracking moved files, SyncTime creates a snapshot of the source which stores each file’s path and identifier. Since the identifier of a file always remains the same, a moved file can be matched to its previous location by finding the corresponding identifier in the snapshot.

When enabling this option, the following sync will store the snapshot. Only starting from the sync after that will moved files be effectively tracked.

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.

Logs

SyncTime logs the following events:

  • Success:
    • a file is added, overwritten, removed or moved
    • file metadata is synced for files whose contents have not changed (metadata includes tags, the hidden and locked state, and any custom directory icon)
    • a sync has completed without errors.
  • Error:
    • the sync bases are unavailable when starting a sync or get disconnected during a sync
    • a file cannot be scanned
    • any of the file operations listed under “Success” fails
    • the snapshots cannot be read or written (for two-way syncs or when tracking moved files)
    • linking a file fails during an incremental backup
    • a conflict occurs during two-way syncs.

The Activity log window can be opened from the Window menu or the status item menu.

To minimize memory usage, when opening the Activity log window only the most recent logs are shown. Older logs can be shown by clicking on Load more in the upper right corner of the log list.

By default, old logs are automatically deleted after 7 days. You can change the time interval in the Activity log window, by clicking on the three dots toolbar button and selecting Maximum log age.

Activity logs are saved in daily files with the .tsv extension in

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

where ~ is your user directory.

Hint: if you want to select a file that is hidden in the Finder, you can navigate to it in the open panel by pressing the keyboard shortcut Command-Shift-G, which will open a dialog that allows you to manually enter a path to navigate to. Alternatively, you can toggle the display of hidden files with the keyboard shortcut Command-Shift-.

How can I get a refund?

When you buy an app on the App Store, you provide your payment details to Apple, which ultimately processes the transaction and offers the app stored on their servers. I don’t have access to your payment details nor to your email or contact information, so I cannot offer a refund. But Apple can.

Why do I get an error when downloading/updating from the App Store?

Unfortunately I don’t have any control over the app download/update process. The App Store is operated by Apple and the downloaded/updated apps are stored on Apple servers.

Apple has an official help article for these issues: https://support.apple.com/en-us/102331

If you end up contacting the Apple Support, they’ll most likely tell you to contact the third-party app developer (me) first; if they do, you can link to this page and emphasize that since the download/update is managed by the App Store and the App Store is an Apple app, only Apple can help.

File modifiers

One-way syncs allow you to specify file modifiers that can change how a file is copied to the destination. File modifiers can be added in the Advanced tab of the sync settings. Each file modifier is applied to all copied files by default, but can be adjusted individually to match a subset of the copied files.

Add Tag

Adding a Finder tag allows to recognize all files copied during a sync, assuming that the tag wasn’t set before.

Compress

Compressing big or rarely needed files allows to save space, but requires expanding them before using them again.

Create alias

Creating an alias pointing back to the source file allows to save space of rarely needed files, but renders the alias useless if the source file is deleted or disconnected.

Rename

Renaming files allows to change or delete characters that are not supported on the destination volume.

You can choose to find and replace text in a file name by selecting one of two operations: Exact match or Regular expression.