Version 2.2.3

Version 2.2.3 (build 125) - 20 December 2024

The Verify remote feature is completed. If you are utilizing this feature, please ensure that you verify either push or pull before disabling the —dry-run option. This feature is primarily intended for users who have multiple Macs and synchronize at least two Macs to a remote storage location that is not a Git repository. The function also requiere version 3.x of rsync to be installed and enabled.

Note: Text button switching --dry-run mode off is misleading. See Verify remote, text should be Off, fixed in code.

The majority of the refactoring are internal changes, primarily to move a few tasks to background processes. Moving resource-intensive work to the background thread is advantageous to prevent blocking GUI updates. All updates for the GUI are executed on the main thread.

The following tasks have been refactored to background threads. Writing data to the permanent storage remains on the main thread.

  • reading data from the permanent storage
    • log records are mapped into a structure fit for viewing
  • preparing output from rsync
    • output from rsync can often be huge, previous limit of 40K rows has been removed, RsynUI presents as many rows there are
  • sorting and filtering log records in view “Log listings”

There are som details about LogRecords and Logs and Output from rsync. If there are like 100K lines of output from rsync, which are delivered as an Array of Strings, the Array of Strings is mapped into a new Array of structs which are compliance with the Identifiable protocol. Swift performes, but still mapping 100K may take a second or two depending on the hardware. If the above mapping is performed on the main thread, it is a possibility that the spinning beach ball is presented.

For further details on the major changes in this version, please refer to the blog post at blog/2024/12/06/swift-concurrency/.

Additionally, there are a few other enhancements implemented in this version as well.

Last modified December 20, 2024: update (02f4fcf)