I’m evaluating moving from unison, which I’ve used for a while but I find to be a bit flaky and old, to Syncthing.
I was considering using ignoreDelete to evaluate that Syncthing is making the right decisions before allowing it to proceed, but I see that this is discouraged.
Is there some way of getting Syncthing to request permission before making any changes so that they can be checked for correctness before proceeding?
You could write your own external versioning script that blocks file replacement until accepted by the user but this will literally force Syncthing to wait for your intervention before doing changes to each file (as there is no batch file processing with versioning) which is going to be unbearable with more than a few files.
How about simply utilising one of the built-in file versioning options and then just restoring files on demand if needed?
Welcome here @Mystara ! Syncthing sure does the right thing. But since you appear to be new to to Syncthing, I recommend you try it out on test data. And when the time comes to use it for real, backups are your friends to help you recover from unwanted deletions.
Thanks for the answers and for the welcome
In honesty, it feels like the solution is (at least at first) to enable ignoreDelete on both sides. From reading the description, it doesn’t seem like the dangers are very big?
I guess another option would just be to use unix file permissions to prevent deletion?
If you enable ignoreDelete, the sync status will be forever out of sync.
My earlier advice still stands: Evaluate on test data. After successful evaluation, just start using Syncthing normally.
And regardless if you use Unison or Syncthing for synching, backups is your friend when needing to recover from “bad stuff”. I assume you don’t do anything strange/nonstandard today when you use Unison. I don’t see any need to do that with Syncthing either.
If you disable
ignoreDelete later, the deletions will sync and the two sides will become in-sync again.
However, this method is still all-or-nothing as you can’t control which specific deletions are going to be synced. Also,
ignoreDelete still won’t prevent modifications or new file additions.