RsyncUI is compliant to the new concurrency model of Swift 6. Quote swift.org:
The main new feature in this release is a view to verify if your local data needs to be updated from remote or not. If you are using two or more macs, which I do, and all macs synchronise data to the same remote storage. If that remote storage is not a Git server, like GitHub, there might be some challenges to keeping the macs in sync and not losing any data.
It is also recommended to use git on your local data. If any local data is deleted or overwritten, a simple git command will revert changes.
There are some restrictions:
--exclude=.git
is appended--exclude=.DS_Store
is appended--delete
is removed, it is a regular copy of missing filesIf the remote is a Git server, a regular git push
and pull
will do the magic.
I do need this enhancement myself. I have more than 3000 bird photos of 130 GB from the last four years, which are synchronized, by RsyncUI, to a local remote server at home. There are new photos added, old photos deleted, and updates to sidecars of photos. A sidecar is a small file that stores changes to the raw photofile.
As long as I was using only one mac, all updates were on that mac. Now, with two macs, I use both macs working on my photos. And when I synchronise my changes, I need to pick up those changes on my second mac.
The new view will by no means be automatic. But there will be information collected for you to decide what to do.
The following are updated, and the user documentation is updated as well.
This release is primarly review and refactor of code where appropriate. And a few minor fixes as well. And the review of code will continue until all code is checked…
rsync
There has been several refactors last two weeks, the detailed changelog show all files which are updated since previous release.
for
loops are refactored using higher order functions like map
, compactMap
, higher order functions are quicker
and makes the code cleaner and easier to readdebounce
function only, replaced by using try await Task.sleep(seconds: 1)
,
seconds may be 1, 2 or 3 seconds depends on the casersync
when it executes, as far as I
understand from reading other articles about Combine it is not clear what the future of Combine isrsync
used in Snapshots, RestoreThere is a minor issue in this version, the links for documentation and the changelog in RsyncUI are not updated after new theme for documentation is applied.
This is a maintenance release, some refactor of code, a few bugfixes and GUI updates. Focus in this version is to make most of functions context sensitive.
--dry-run
is not visible until a task is selectedThe following are updates:
OSLog
.Include Info Messages
and enter no.blogspot.RsyncUI
as subsystem within the search fieldSorry for many updates in a few days, but sometime a previous quick bugfix is not working as expected. Which was the case with previous release. There has been a few updates in this release. Mostly in computing arguments for ssh-parameters, applies for remote servers only. And there has also been a couple of GUI updates as well.
Next release again will probably be in a month or two, depending if no other bugs are found within this period.
Fixed a bug in ssh-parameters, applies for using remote servers only.
After some more testing, using Swift Testing, I discovered a few more issues about ssh-parameters. Local set ssh-parameters rules global set ssh-parameters. Local ssh-keypath or ssh-port should only set one of them even if there are global set ssh-keypath and ssh-port.
ssh parameters in version 2.1.2 (build 112) does not work as expected. But default values for RSA based ssh-key and identityfile, ~/.ssh/id_rsa
and ssh-port = 22
, are automatically picked up by rsync
. This is a workaround until version 2.1.3 is released in some days.
There will be a new version 2.1.3 (build 113) including fixes for the above by next week, the week starting with Monday 16 September 2024. The package RsyncArguments and tests are updated.
Built on macOS Sequoia by Xcode 16. Built for macOS Sonoma and macOS Sequoia. The default rsync
on macOS Sequia is openrsync
, see info about rsync versions.
The work on adapting RsyncUI to the new concurrency model of Swift 6 is complete.
SWIFT_STRICT_CONCURRENCY = complete
and SWIFT_VERSION = 6;
is setrsync
is not validrsync -e ssh -r --list-only thomas@raspberrypi:/backups/Documents/
rsync --verbose --compress -e ssh -i ~/.ssh_rsyncosx/rsyncosx -p 22 -r --list-only thomas@raspberrypi:/backups/Documents/
if user defined ssh-key and identityfile are enabledThe new version number of RsyncUI is ver 2.1.1 build 111 due to using Swift Package Manager (SPM) and Swift Testing is a significant change to increase quality of code. By using SPM, parts of the source code in RsyncUI is extraced and created as packages.
rsync
from configurationsrsync
, used in view for details and log result of a synchronize tasksBy SPM and Swift Testing, the code for RsyncUI is modularized, isolated, and tested before committing changes.
This is most likely the last release before macOS 15, macOS Sequoia is released sometime after the summer. Bugs will be fixed, though, if found. The work with Swift 6 and Xcode 16 beta commenced today. The major work in next release 2.0.0 (build 101) is compliance with the new concurrency model of Swift 6. And there are some new things there for me to learn and understand.
on
, a summary only of each synchronization is added to the log records, view Log Listings
from Sidebar (not changed)off
, there is also possible to add a short summary to the log fileDates and version only
Version 1.9.1 (build 99) - 27 May 2024
Version 1.9.0 (build 98) - 12 April 2024
Version 1.8.9 (build 97) - 26 March 2024
Version 1.8.8 (build 96) - 14 March 2024
Version 1.8.7 (build 95) - 20 February 2024
Version 1.8.6 (build 94) - 30 January 2024
Version 1.8.2 (build 92) - 8 January 2024
Version 1.8.1 (build 91) - 29 December 2023
Version 1.8.0 (build 90) - 18 December 2023
Version 1.7.9 (build 89) - 7 December 2023
Version 1.7.8 build (88) and 1.7.5 build (88) - 23 November 2023
Version 1.7.3 build (86) - 19 October 2023
Version 1.7.5 build (84) - 28 September 2023
Version 1.7.2 build (85) - 23 September 2023
Version 1.7.1 build(83) - 1 September 2023
Version 1.7.0 build(82) - 16 August 2023
Version 1.6.6 build(81) - 1 August 2023
Version 1.6.5 build(80) - 16 July 2023
Version 1.6.3 build(79) - 29 June 2023
Version 1.6.1 build(77) - 20 June 2023
Version 1.6.0 build(76) - 16 June 2023
Version 1.5.0 build(73) - 4 May 2023
Version 1.4.8 build(70) - 24 March 2023
Version 1.4.7 build(69) - 14 March 2023
Version 1.4.5 build(67) - 7 March 2023
Version 1.4.3 build (65) - 8 February 2023
Version 1.4.2 build (64) - 6 January 2023
Version 1.4.0 build (62) - 6 December 2022
Version 1.3.9 build (57) - 18 November 2022
Version 1.3.8 build (56) release candidate - 10 November 2022
Version 1.3.7 build (56) - 5 November 2022
Version 1.3.6 build (55) - 31 October 2022
Version 1.3.0 build (53) - 30 September 2022
Version 1.2.9 build (52) - 8 September 2022
Version 1.2.8 build (51) - 20 March 2022
Version 1.2.7 build (50) - 17 March 2022
Version 1.2.6 build (48) - 31 December 2021
Version 1.2.5 build (48) - 6 December 2021
Version 1.2.3 build (46) - 11 November 2021
Version 1.2.2 build (45) - 28 October 2021
Version 1.2.1 build (42) - 21 October 2021
Version 1.2.0 build (41) - 28 September 2021
Version 1.1.2 build (40) - 9 September 2021
Version 1.1.2 build (39) - 1 September 2021
Version 1.1.2 build (38) - 28 August 2021
Version 1.1.2 build (37) - 21 August 2021
Version 1.1.2 build (36) - 16 August 2021
Version 1.1.2 build (35) - 11 August 2021
Version 1.1.2 build (34) - 30 July 2021
Version 1.1.2 build (28)
Version 1.1.1 build (27)
Version 1.1.0 build (26)
Version 1.0.1 build (24)
Version 1.0.0 build (23)
Prerelease version 0.99 build (22)
Prerelease v0.60 build (20) - breaking changes
Prerelease v0.55 build (19) - 14 April 2021
Prerelease v0.49 build (18)
Prerelease v0.48 build (17)
Prerelease v0.47 build (16)
Prerelease v0.45 build (15)
Prerelease v0.42 build (14)
Prerelease v0.41 build (12)
Prerelease v0.39 build (11)
Prerelease v0.36 build (10)
Prerelease v0.36 build (8)
Prerelease v0.35 build (7)
Prerelease v0.3 build (6) - 12 March 2021
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.