We have three nodes and these three nodes share several folders (A, B, C, …) via Syncthing between each other. If we move files from shared folder A to shared folder B can Syncthing detect this change or will Syncthing regard these files in folder B as new/created and up-/download them completely?
It can’t detect moves between folders, but if the creation happens before the deletion it will copy the data locally instead of getting the data from remotes. If you use filesystem watching that should be the case, as deletions get delayed compared to creations. And if you don’t, it would work if there are enough changes for both folders, as deletions are processed last. If there’s deletions only on one folder and creations only for the other, deletions will be fast and thus delete stuff before it can be copied locally and it will have to pull data from remotes.
Even then, it’s not guaranteed, as if you move large folder trees across (which has hundereds of file entries) there is a protocol level size of message that limits what might be noticed in what order at what time.
Best bet is to copy, wait for a rebuild on the other side, delete.
Thanks for your input, very interesting indeed. Does this also apply cross shares? Or does each Syncthing folder have its own independent database?
Renames don’t work across folders as each folder is independent, but avoiding downloads by reusing data from another folder works across folders, which would kick in in the copy wait delete scenario.