Put the two folders in the two panels, press Ctrl+Shift+S, and cwdio shows what differs — every file, which side is newer, what would be copied and what would be deleted — before it touches anything. Choose the direction, tick or untick rows, override any single one, and Apply turns the plan into ordinary queue operations you can watch, cancel and undo.
What it does
- A dry run first. The compare walks both trees in lock step, host-side, and returns a plan: rows with per-side size and date, an include checkbox each, and a decision. Nothing moves until Apply.
- Five modes. Update → / Update ← (copy new and newer one way, never delete), Mirror → / Mirror ← (exact replica; target-only entries deleted to the Recycle Bin), Two-way. Decided per row, with the ambiguous ones left unchecked.
- Per-row override. Click a row’s direction to cycle it — copy this way, copy that way, delete, skip — and it wins over the mode. Picking a direction re-includes the row.
- Compare contents. Optional: same-size pairs are hashed on both sides, with a live Comparing… N files hashed line.
- Exclude mask.
*.tmp;node_modules;.gitdrops matching rows — matched on any path segment — with an N excluded count. - Applied through the queue. Copies run with overwrite and honour Verify copies; deletes go to the trash; the Operations drawer opens so the sync is cancellable, pauses if a drive vanishes, tolerates a failed file, and is journaled like any transfer.
- Remembered settings. Mode, compare-contents and the exclude mask persist between runs.
- Compare files. Ctrl+Shift+D — a virtualised side-by-side diff with word-level highlighting and
n/pto step through changes. - Mark differences. Tools ▸ Mark differences selects, in each panel, the names the other panel lacks — the quick set-difference when you do not need a plan.
How to use it
- Left panel: the source (your working folder). Right panel: the target (the backup drive, the copy on the NAS).
- Ctrl+Shift+S. Read the summary line — how many to copy each way, how many to delete.
- Choose Update → for a backup that must never lose a file, Mirror → for a replica that should not keep what you deleted, Two-way when you edited on both sides.
- Add an exclude mask if the plan is full of
node_modules; turn on Compare contents if dates cannot be trusted (a restored backup, a cloud folder). - Apply. Watch it in the Operations drawer, or carry on with something else.
What it deliberately does not do
- It never deletes silently. Deletions appear as rows in the plan and, when applied, go to the Recycle Bin.
- It does not guess an ambiguous row’s direction. Same date, different size is left to you.
- The compare is bounded — 2 000 rows, an entry budget — and says so if it was truncated rather than pretending the plan is complete.
Related
- Transfers and the queue — what Apply hands the plan to.
- Duplicate finder — when the question is “do I have this twice?”, not “which side is newer?”.
- Git integration — the same diff viewer, one file at a time against HEAD.