Giter Club home page Giter Club logo

rsyncosx's Introduction

RsyncOSX

A short intro to RsyncOSX and full documentation of RsyncOSX.

RsyncOSX is a GUI on top of the command line utility rsync. Rsync is a file-based synchronization and backup tool. There is no custom solution for the backup archive. You can quit utilizing RsyncOSX (and rsync) at any time and still have access to all synchronized files.

RsyncOSX is compiled with support for macOS El Capitan version 10.11 - macOS Mojave version 10.14 (and macOS Catalina 10.15 when released). The application is implemented in Swift 5 by using Xcode 10. RsyncOSX is not depended upon any third party binary distributions. There is, however, one third party source code included to check for TCP connections. The check is for informal use only and can be removed.

Scheduled tasks are added and deleted within RsyncOSX. Executing the scheduled tasks is by the menu app.

Signing and notarizing

The app is signed with my Apple ID developer certificate and notarized by Apple. See signing and notarizing for info.

Important: from macOS 10.15 Catalina, notarization is required by default for all software. RsyncOSX is signed and notarized and a new signed and notarized release will be available shortly after release of macOS 10.15.

Changelog

The Changelog.

Localization

From version 5.8.6 RsyncOSX speaks new languages. RsyncOSX is localized to:

  • Chinese (Simplified) - by StringKe
  • Norwegian - by me
  • English - the base language of RsyncOSX

RsyncOSX is prepared for new languages and volunteers for translating to other languages are wanted. Translating RsyncOSX is done by utilizing the Xlifftool. The tool reads a xliff file, which I prepare, for translating. The xliff file is imported into RsyncOSX by Xcode.

Version of rsync

RsyncOSX is only verified with rsync versions 2.6.9, 3.1.2 and 3.1.3. Other versions of rsync will work but numbers about transferred files is not set in logs. It is recommended to install the latest version of rsync.

The --delete parameter

Caution about RsyncOSX and the --delete parameter. The --delete is a default parameter. The parameter instructs rsync to delete all files in the destination which are not present in the source. Every time you add a new task to RsyncOSX, execute an estimation run (--dry-run parameter) and inspect the result before executing a real run. If you by accident set an empty catalog as source RsyncOSX will delete all files in the destination. To save deleted and changes files either utilize snapshots or the --backup feature.

Fighting bugs

Fighting bugs are difficult. I am not able to test RsyncOSX for all possible user interactions and use. From time to time I discover new bugs. But I also need support from other users discovering bugs or not expected results. If you discover a bug please use the issues and report it.

Main view

The main view of RsyncOSX. Prepare for synchronizing tasks.

About crash?

What happens if bugs occurs during execution of tasks in RsyncOSX? The command line tool rsync is designed to continue where rsync is by any reason, stopped or killed. Users can abort execution of tasks at any time. To continue an aborted task execute the task again and rsync will restart and complete the task. This is also true if a bug in RsyncOSX occurs during execution of a task.

If RsyncOSX does halt or crash during operation there is no damage to files or deletion of files in the source. The source is only read during synchronize and snapshot tasks.

About restoring files to a temporary restore catalog

If you do a restore from the remote to the source, some files in the source might be deleted. This is due to how rsync works in synchronize mode. As a precaution never do a restore directly from the remote to the source, always do a restore to a temporary restore catalog.

Application icon

The application icon is created by Zsolt Sándor. All rights reserved to Zsolt Sándor.

How to use RsyncOSX - YouTube videos

There are four short YouTube videos of RsyncOSX:

  • getting RsyncOSX and installing it
    • the video also shows how to create the two local ssh certificates for password less logins to remote server
  • adding and executing the first backup
  • doing a full restore to a temporary local restore catalogs
  • how to change version of rsync utilized by RsyncOSX

SwiftLint

As part of this version of RsyncOSX I am using SwiftLint as tool for writing more readable code. There are about 120 classes with 15,300 lines of code in RsyncOSX (probably too many?). I am also using Paul Taykalo´s swift-scripts to find and delete not used code.

Compile

To compile the code, install Xcode and open the RsyncOSX project file. Before compiling, open in Xcode the RsyncOSX/General preference page (after opening the RsyncOSX project file) and replace your own credentials in Signing, or disable Signing.

There are two ways to compile, either utilize make or compile by Xcode. make release will compile the RsyncOSX.app and make dmg will make a dmg file to be released. The build of dmg files are by utilizing andreyvit script for creating dmg and syncthing-macos setup.

XCTest

XCTest configurations are in development.

rsyncosx's People

Contributors

rsyncosx avatar thomasyoungson avatar superman32432432 avatar graphis avatar stringke avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.