find_conflict: a small TUI to find and resolve Syncthing conflict files

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