furtest c7f0a67f17 runners : add synchronisation to unisync_add
unisync_add was missing synchronisation steps that allow to
synchronise a new file (present on the server but as a link locally).
This adds the two necessary synchronisations, the first one so all the
files are up to date and are not overwritten by the second one which
forces all the changes from the remote to overwrite the local ones. This
has the effect to replace the link with the actual file.
2026-01-21 10:33:52 +01:00
2026-01-04 19:22:04 +01:00
2025-06-14 19:22:18 +02:00
2026-01-02 10:45:00 +01:00

Unisync is a data synchronisation tool written in python and based on unison.
I couldn't find a tool to fulfill the requirements I had for a synchronisation tool so I am creating my own as a wrapper around unison.

Prerequisite

You need to have the following tools installed.

Locally :

  • unison
  • sshfs
  • nnn

Remotely :

  • unison
  • cleanlinks and lndir (Should be in xutils-dev when using apt)

Goal

Unisync purpose is to keep personal data synchronised between multiple machines without needing to have all the data present an all the machines at the same time. For example you might not need to have your movies on your laptop but still want them on your desktop at home or you might want to keep your old pictures only on a server. Unisync requires you to have a "server" (like a NAS at home) that will store all your data allowing you to only copy what you need when you need it.
The issue is that you need to know what data is stored on the server to avoid conflict if creating duplicate files or folders. To address this unisync places a symlink for every file you do not wish to keep locally and allows you to mount the remote filesystem (using sshfs) allowing you to access files that aren't synchronised.

Developement

Unisync was at first a simple bash script but as it grew more complex I started struggling to maintain it which is why I am porting it to python. It will make everything more robust, easier to maintain and to add functionalities.
I am in the early stages of the developement process, this should be usable someday (hopefully).

Description
No description provided
Readme 285 KiB
Languages
Python 100%