Im’ using SyncThing between my laptop and desktop PC, both in Windows 10 Pro FR. All the disk partitions are with the NTFS filesystem (so, unless mistakes, all filenames are encoded in UTF-16)… However, periodically I have failing items with this invoked reason: “normalizing path: item has UTF8 encoding conflict with another item”. Currently, 87 items are in this situation and the overall directory is, by the way, marked “out of sync”.
From the laptop’s point of view, the files appear duplicated on disk (for example in the capture below called “Langage C++ - Les types de données.mht”). You’ll notice that this file is in a dev tree which is under versioning control (here, subversion).
From the desktop station’s point of view, there’s only one file (with each name) and the folder is well declared as “up to date” by SyncThing.
So, what should I do? Delete the unversioned (ie. certainly added by SyncThing from the other side) file for each pair? Fix the filename encoding (but I don’t see any character which cannot be handled in UTF-8 here)? Do something in the config of one or both of my PC’s?
The problem is that characters in UTF-8 (or UTF-16) can be represented in multiple ways (“normalisation forms”) and you apparently have files names in multiple variants. Typically that would happen if you copy files directly from a Mac disk (since macOS does the opposite to Windows and most of the rest of the world). In your case, delete one of them and Syncthing will use the other, possibly correcting the normalisation form in the process.
Interesting! These files seat in a dev tree about a cross-platform app (Windows/Mac) and updates from the repository may come from both a Windows or macOS commit. So, do you think the subversion-related pieces (ie. Win/Mac clients and SVN server) don’t take care of this aspect (e.g. just take the name without keeping the os-dependent encoding which could be different in each working copy)? And why it happens on these 87 files only, while there are plenty of files (and a lot with non-English characters) in this tree?
Well, 87 files to locate and delete manually… Too cool