RsyncOSX - a GUI for rsync

RsyncOSX is a pure Swift based macOS application utilizing the command line tool rsync for synchronizing files. It is rsync which executes the actual synchronize task. RsyncOSX is a GUI only ontop of rsync. RsyncOSX is signed and notarized by Apple. Apple has verified it for not containing malicious code and digitally signed it. rsync is a file based tool for synchronization of files. Before commenze use of RsyncOSX RsyncOSX is compiled for macOS Big Sur and later.

Add task

Caution: always verify, by a dryrun, the result of a new task before executing it. See synchronize data task how to verify a task. A task require minimum a local catalog and a remote catalog. Continue to add new tasks until completed and tasks are saved to permanent storage after each entry. Select local catalog either by GUI, drag and drop or by enter text directly. Add is selected by choosing Add task on the sidebar menu.

Changelog

RsyncOSX is signed and notarized. Please see info about the latest version of rsync in install. Version 6.7.6 build (21) Released 13 January 2023 Compiled on Apple Silicon (M1 Pro) by Xcode 14.2 as a Universal macOS Binary on macOS Ventura. I have also commenced writing an article about how the apps (RsyncOSX and RsyncUI) are built. It is work in progress and documents some of the main building blocks for the apps.

How are the apps built?

Under development. This page is an overview of the main components of RsyncOSX and RsyncUI. The development of the apps has been an evolving process. The open source community has been and still are a great resource for ideas and how to solve specific tasks. Both apps today are stable and in a state of maintenace. Some numbers: App Lines of code Swift files Version 1.0 RsyncOSX about 160K 130 14 March 2016 RsyncUI about 170K 170 6 May 2021 Some building blocks The following addresses some of the main building blocks of both apps and the main difference between them.

Important

If you are new to the command line tool rsync and RsyncOSX please read this information. RsyncOSX is a GUI only on top of the command line tool. It is rsync which does actual work, not RsyncOSX. The –delete parameter and new tasks The --delete parameter is a default parameter set by RsyncOSX to rsync. The parameter instructs rsync too keep the source and destination in sync. The parameter instructs rsync to delete all files in the destination which are not present in the source.

How to compile RsyncOSX

RsyncOSX is only depended upon Cocoa and Foundation classes which are standard Swift libraries. There are two ways to compile, either in Xcode or utilize make from command line in RsyncOSX catalog. To use make require Xcode command line utilities to be installed. Execute the following command and follow the instructions. xcode-select --install Remove signing credentials or replace To compile you have to either remove signing or replace signing credentials. To remove or replace select Target RsyncOSX and tab “Signing and Capabilities”.

Execute several tasks

There are three options for executing several synchronize tasks. The three toolbar buttons are: Search for all tasks with files to synchronize and execute. or by ⌘B shortcut Do an estimation run and present which tasks with files to be synchronized. or by ⌘T shortcut As above, but for the selected tasks. or by ⌘R shortcut A double click on a task executes an estimation run and shows the result of the estimation.

Execute single tasks

In Synchronize view tasks can be executed as single tasks. Execute single tasks require two double clicks: the first double click for estimation (dryrun) and the second double click for executing the task The output from rsync is presented after each run. Verify and execute a single task Execute a single task is a two step operation. The first is an estimation or verify run, a dryrun execution. The second one is the real run.

Latest version of rsync

The default version 2.6.9 of rsync in macOS was released in nov 2006. And there has been several fixes and releases since then. The news about the current release of rsync is here. Due to new features in rsync and dependency to shared libraries it is not possible to bundle the latest version together with RsyncOSX. It is adviced to install rsync as part of Homebrew. In RsyncOSX select user configuration and set path for optional version of rsync.

Localization

RsyncOSX is localized to: Chinese (Simplified) - by StringKe (Chen) German - by Andre Voigtmann Norwegian - by me English - the base language of RsyncOSX Italian - by Stefano Steve Cutelle’ Dutch - by Marcellino Santoso