From eeeb4893c7c398e0854c47f621b403fd59dfb558 Mon Sep 17 00:00:00 2001 From: fyears <1142836+fyears@users.noreply.github.com> Date: Wed, 17 Jan 2024 01:24:39 +0800 Subject: [PATCH] draft --- docs/sync_algorithm_v3.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/sync_algorithm_v3.md diff --git a/docs/sync_algorithm_v3.md b/docs/sync_algorithm_v3.md new file mode 100644 index 0000000..681ab62 --- /dev/null +++ b/docs/sync_algorithm_v3.md @@ -0,0 +1,38 @@ +# Sync Algorithm V3 + +Drafted on 20240117. + +An absolutely better sync algorithm. Better for tracking deletions and better for subbranching. + +## Huge Thanks + +Basically a combination of algorithm v2 + [synclone](https://github.com/Jwink3101/syncrclone) + [rsinc](https://github.com/ConorWilliams/rsinc) + (some of rclone [bisync](https://rclone.org/bisync/)). All of the later three are released under MIT License so no worries about the licenses. + +## Features + +Must have + +1. true deletion detection +2. deletion protection (blocking) with a setting +3. transaction from the old algorithm +4. user warning show up, **new algorithm needs all clients to be updated!** (deliberately corrput the metadata file??) +5. filters +6. conflict warning +7. partial sync + +Nice to have + +1. true time and hash +2. conflict rename + +## Description + +We have _five_ input sources: local all files, remote all files, _local previous succeeded sync history_, local deletions, remote deletions. + +Init run, consuming local deletions and remote deletions : + +TBD + +Later runs, use the first, second, third sources **only**. + +TBD