I keep running into .sync-conflict- files in shared folders, and I never know where they all are or which version I actually want to keep. The web UI is fine for looking at one folder, but not for digging through a few thousand files.
So I wrote find_conflict. It walks a directory, finds the conflict files, and shows a diff of the conflicting file against the original in a terminal UI. You then keep the original, keep the conflict, or keep both, and it does the file operation for you.
find_conflict -r -d ~/Sync
Keys: j/k scroll, o keep original, c keep conflict, b keep both.
There are also non-interactive modes, since I wanted to run it from cron and from scripts:
# only show what is there
find_conflict -r -d ~/Sync --dry-run
# machine readable, one entry per conflict
find_conflict -r -d ~/Sync --json --dry-run
# keep both copies of everything, no questions asked
find_conflict -r -d ~/Sync --non-interactive --action both
--exclude takes gitignore style patterns, and the usual -H/-i flags are there for hidden files and ignore files.
Install with cargo install find_conflict, or with nix profile add git+https://codeberg.org/DontBlameMe/find_conflict. Prebuilt Linux binaries are on the Codeberg release page.
It only understands Syncthing conflict names for now. I know there is no universal answer to “which one should I keep”, so the tool does not try to be clever: it shows you the diff and does what you pick. Bug reports and name variants I got wrong are very welcome, especially if you have conflict files that the tool does not recognize.
Source and issues: https://codeberg.org/DontBlameMe/find_conflict