Why compare by contents
How duplicate matching works — the same byte-for-byte comparison, and what it does not claim.
Sync Folders compares two folders, A and B, shows every difference side by side, and brings them in line in the direction you choose. It is the third section of the app, beside Duplicates and Similars: ⌘+4 on a Mac, Ctrl+4 on Windows.
Nothing is copied or removed while it compares. Nothing runs until you press Sync… and confirm.
Choose folder A and Choose folder B, or pick a pair from Recent Setups, which keeps each pair with its direction and how often you used it. The button between the two folders swaps them.
Then a direction. The line beside it says what it will do:
| Direction | What it does |
|---|---|
| Mirror to B | B becomes a copy of A. Files only in B go to the Trash. |
| Mirror to A | A becomes a copy of B. Files only in A go to the Trash. |
| Both ways | A and B trade their changes. Deletions go to the Trash. |
The Filters row works as it does in Duplicates: a chip per thing that decides what is compared, and Customize… for the Sync parameters dialog — file types, size, ignore options, folders to skip, and whether cloud-only files are downloaded.
Press Compare.
Every path under A is paired with the same path under B. Then:
Dates are not used to decide because they are not reliable enough: volumes keep them at different precisions — a nanosecond on APFS, 10 milliseconds on exFAT, 2 seconds on FAT — and a copy that does not preserve them writes the time of the copy instead. Two files with the same size and date but different contents are reported as different.
The two folders are shown as trees side by side, and the button between each pair says what will happen to it. The chips across the top count and filter the pairs: Only in A, Only in B, Different, Conflicts and Same. Search files… narrows the list by name.
The inspector (⌥+⌘+I) shows the pair under the cursor: both files, their sizes and dates, what will happen, and why — in sentences such as “Changed in A since the last sync. B still holds what was synced.” Space opens the preview, with photos, video, audio and PDFs.
The footer adds up the plan — what will be copied each way, what goes to the Trash, and how many pairs are waiting for you to decide. Reset plan puts every pair back to what the direction would do on its own.
Click the button between the two sides to open its menu:
On a folder, the same menu decides for everything inside it: Copy all to A, Copy all to B, Move all to the Trash, Leave all alone.
Right-click a row to ignore it — that one path, every file named the same, or every folder named the same, anywhere on both sides. The Ignored menu in the toolbar lists what is ignored, and Stop ignoring all clears it.
A mirror imposes one side, so it never asks. Both ways has to know which side changed, and it does not guess from the dates. After every sync, DuoBolt keeps a record of what the two folders held when they matched. On the next comparison it asks that record:
| What happened since the last sync | What Both ways does |
|---|---|
| Changed on one side | Copies it to the other |
| Deleted on one side | Moves the other side’s copy to the Trash |
| Changed on both sides | Conflict — waits for you |
| Deleted on one side, changed on the other | Conflict — waits for you |
| Only on one side, never synced | Copies it to the other |
| On both sides, never synced, and different | Conflict — waits for you |
The first sync of a pair has no record, so any file that exists on both sides and differs is a conflict: DuoBolt cannot tell which side moved. After that first sync, it can.
Newer wins settles conflicts by date, but only when you press it — for one pair in the inspector, or Newer wins for all N conflicts at once. It copies the newer file over the older one wherever the dates can decide. The dates are never applied on their own.
Some pairs would act on their own by the rules above, but are held back instead, because the situation looks like a mistake. Each says why in the inspector, and nothing happens to it until you pick.
App bundles and other packages are synced whole or not at all: if part of one waits, the rest of it waits too.
A file kept only in iCloud Drive, Dropbox or OneDrive is not downloaded to compare it, unless Download cloud-only files is on in Sync parameters. The pair is listed as not compared, and waits — it is never copied over on a guess. Download and compare, in the inspector or the row’s menu, fetches it and compares again.
A pair where one side could not be read waits the same way.
Sync… opens the run dialog, and before anything runs it spends a moment checking what would fail.
The summary starts with anything undecided — conflicts you have not settled stay as they are, and nothing is copied for them — then lists what will be copied to each side and what goes to the Trash. It says when a side has no Trash, such as many network shares, where removing a file would delete it for good. Those files are left alone unless you tick Delete them for good.
Stop after this file is safe at any point: it finishes the file it is on. When the sync ends, DuoBolt reads both sides again, so the list shows what is actually on the disk.
On a Mac, files a sync moved to the Trash, and files a copy replaced, can be restored from Operations History.
A plan you have started deciding is kept as a sync session — the folders, the direction and every choice you made. It is offered back on the Dashboard and at the top of Recent Setups, with Resume and Discard. Resuming compares again and keeps your choices.
Comparing is not limited, and every difference is shown. The free version carries out up to 25 files and 500 MiB per sync; what is left stays in the list for the next one. A license removes the cap. See Tiers.
Why compare by contents
How duplicate matching works — the same byte-for-byte comparison, and what it does not claim.
Getting a file back
History and restore — Operations History and what it can put back.