< Back

How it works for now

One-way One-to-Many sync for Add, Modify, Delete, Rename operations. You can see here a short video demo:
Watch the video

We’ll exemplify for 2 paths, from path1 to path2 but it works with multiple paths, it will Sync from path1 to others.

One-way sync:

We use git to catch the changes, how it works:

Using CLI

For now you need to have the git client installed locally.

You can find the binaries here. Select the last successful run and at the bottom you should have binaries for multiple OSs.

For other targets you could clone the repo and build it, see below how.

You can run syncoxiders -h to see all args. The basic usage is like this:

syncoxiders --repo <REPO> <PATH1> <PATH2>

For now, it does One-way sync propagating the changes from path1 to other paths:

By default it detects changes in files based on size and mtime. After copying to path2 it will set atime and mtime for the files.

Other args:

Limitations

Troubleshooting

In case you experience any inconsistencies in the way the files are synced, or not synced, you can delete the repo directory and run it again. It will see all files as new but will not copy them to the oher sides if already present and the same, it will just copy the new or changed ones.

Compile it from source code

Clone the repo

git clone git@github.com:radumarias/syncoxiders.git
cd syncoxiders

gcc

You need to have gcc installed locally.

Install rust

Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Configuring the PATH environment variable

In the Rust development environment, all tools are installed to the ~/.cargo/bin directory, and this is where you will find the Rust toolchain, including rustc, cargo, and rustup.

Accordingly, it is customary for Rust developers to include this directory in their PATH environment variable. During installation rustup will attempt to configure the PATH. Because of differences between platforms, command shells, and bugs in rustup, the modifications to PATH may not take effect until the console is restarted, or the user is logged out, or it may not succeed at all.

If, after installation, running rustc --version in the console fails, this is the most likely reason.

You can try this also:

$HOME/.cargo/env

Compile the code

cargo build --release

Run it

target/release/syncoxiders --repo <REPO> <PATH1> <PATH2>

Work in progress