Settings
Four tabs: Comparison, Ignore, Viewers, General. None of the comparison switches is allowed to call a file identical if its contents were not actually compared. Reset buttons restore that tab’s defaults.
Comparison
These apply to the folder scan and to the byte check that runs before a file viewer opens.
| Setting | Default | What it does |
|---|---|---|
| Check size first | On | If sizes differ, the files are different. Contents may not be read. If this is off, a size mismatch is still different content; samples may still be read. |
| Use modification timestamps | On | Records mtime. A time difference is never itself proof that bytes differ, and never proof that they match. |
| Timestamp tolerance | 2 seconds | Times closer than this are treated as the same time. Capped at one year. |
| When timestamps differ, compare contents | On | If this is off, and full verification is also off, a timestamp-only change stays a probable match: contents are not read. |
| Sample file contents | On | Reads windows from the file instead of (or before) the whole file. |
| Sample size | 1,024 bytes | Each window. Hard cap 8 MiB so a setting cannot allocate an unbounded buffer. |
| First bytes / last bytes | On / on | Include the start and the end of the file. |
| Middle regions | 1 (0–8) | Evenly spaced extra windows. Overlapping windows are merged. |
| Full byte-for-byte verification | Off | Streams both files and compares bytes directly. Not a checksum. This is the only way a non-empty file is fully verified when samples do not already cover every byte. |
| Show metadata-only differences separately | On | A timestamp or similar gap is reported beside the content result, not as a stand-in for “different bytes”. |
| Follow symbolic links | Off | Off: the compared value is the link path. On: the target is read, but never outside the selected folder; cycles are errors; depth stops at 256. |
If the sample windows match, the files are Identical even though other bytes were not read. That result has fully verified false. Turn on full verification when you need every byte.
Ignore
Excluded items stay out of the identical and different counts. An ignored directory is not walked. A one-sided file that matches a rule is excluded, not left-only or right-only.
| Kind | How it matches |
|---|---|
| Extension | Last path extension only, case-insensitive. archive.tar.gz matches gz. A leading dot in the pattern is optional. Directories are not matched. |
| Exact name | Case-sensitive. .DS_Store has no extension under Foundation’s rules, so the default rule is this kind, not an extension. |
| Wildcard | Against the file or folder name. * does not cross /. Case-sensitive. |
| Directory name | Folder name equals the pattern, case-sensitive. That folder is not descended into. |
| Path pattern | Against the relative path. ** may cross folders. Case-sensitive. |
An empty pattern matches nothing. Defaults: exact name .DS_Store, extensions class, log, tmp, all enabled. Add Rule, remove with the minus control, or Reset Ignore Rules.
Viewers — Text
| Setting | Default | What it does |
|---|---|---|
| Font size | 12 pt (9–28) | Applies to open windows immediately. |
| Show line numbers | On | Also applies to open windows immediately. |
| Syntax highlighting | On | Display attributes only. Applies to files opened afterwards. |
| Ignore whitespace differences when a file opens | On | Default for the checkbox in the text window. Applies to files opened afterwards. You can still toggle it per file. |
Editing and saving always ask before replacing a file that changed on disk. Encoding and line endings are kept on save. See text comparison.
Viewers — Images
| Setting | Default | What it does |
|---|---|---|
| Comparison | Exact pixels | Or “Tolerance and regions”. Exact ignores tolerance and smallest-region. |
| Difference measure | Largest channel difference | Or perceptual (weighted). |
| Tolerance | 8 of 255 | A pixel counts as changed when its difference is above this. Disabled in exact mode. |
| Merge distance | 6 px (0–64) | Changed pixels this far apart or closer become one region. |
| Smallest region | 4 px | Smaller regions are dropped in tolerance mode. Disabled in exact mode. |
Images are compared only when width and height match. Conversion is 8-bit sRGB with premultiplied alpha. A tolerance result always says it is not an exact match. More on the image page.
General
Local only. Comparison does not need the internet. Files are not uploaded. Recents store bookmarks, not copies of your files. Why that matters
- Count of recent comparisons, and a button to clear them. Recents store security-scoped bookmarks, not file contents. Bookmarks can expire; DiffMan then asks for the folders again.
- Choosing folders and comparing them does not modify either side.
- The build is sandboxed. Typed paths work only when macOS already allows them; otherwise use Browse or a drop.
- If the Mac is online, DiffMan may send four anonymous counters (install, open, first compare, number of compares in a session). Those events contain no paths and no file contents. Comparison does not wait for them and still works when they fail.