I’m using syncthing to sync code betweeen Windows 10 (local), and two Linux machines (remote). I’m editing code on local machine, run compiler and get a lot of sync conflicts. Strangely, syncthing thinks all conflicted files are originated on local machine, which is strange. Any way I can debug / fix it?
My guess would be you have an IDE open on some of the other machines, which auto builds/formats/resaves/whatever causing conflicts. I’d debug by shutting down stuff on the other machines.
Nope, there are no IDEs open on remote machines. These machines are for passive storage only. Moreover, conflicts are created when I put remote machines on pause in remote devices. All conflicting files created by SyncThing have suffixes corresponding to the local machine id, and sometimes several such files are created (all corresponding to local machine). I assume that sync conflict means that file was edited on remote machine and local machine simultaneously, and suffix (the XXXX in filename-.sync-conflict-DATE-TIME-XXXX.ext) corresponds to the machine on which the particular version was created.
You can run syncthing cli debug file <folder-id> <file-path> on either/both the original and conflict file, and the version vector will show which remote device was involved.
That’s equivalent to “not found” (all default values). Please double check you are using the path relative to the folder root, e.g. “foo/bar” when the abs path is “/folder/root/foo/bar”.
I digged into the json generated by syncthing. It turned out that conflicting version was generated on a Linux machine (Raspberry Pi), where synchronized directory was shared by SMB. Can that be a source of a problem?