Release notes

Changelog

Every DiffScope release and what changed in it. Each version has its own link, for example /changelog#1.0.1.

Latest: v1.0.1 Plans: Roadmap

1.0.1

Latest Bug-fix release

Fixes a command-line problem that could make automated scripts and CI jobs wait forever. Recommended for everyone who runs DiffScope with --headless.

Download 1.0.1 Download page

Fixes

  • CLI--headless with a command line DiffScope cannot parse (for example an unknown option, or too many paths) now prints the error to stderr and exits with code 2. In 1.0.0 it opened the error window and waited for it to be closed, which could hang a CI job.

Documentation

  • The exit-code table now states that a two-way compare window exits with 0 when closed; only --headless diffs report 1 for different files.

Quality

  • New end-to-end tests run the real app with invalid headless command lines (49 end-to-end tests in total).

1.0.0

Initial release

The first public release of DiffScope: text, folder and hex compare, 3-way merge, a headless command line and TortoiseGit / git integration, in one portable zip for Windows 10/11 x64.

Download 1.0.0

New

  • TextSide-by-side text compare with line numbers and word-level highlighting inside changed lines.
  • TextIgnore all whitespace, whitespace changes or leading/trailing whitespace, plus case and blank lines.
  • TextEdit either side in place, copy blocks left or right (Alt+←/→), undo and redo across both panes, and save.
  • TextEncoding (UTF-8, UTF-8 BOM, UTF-16 LE/BE, Latin-1) and line endings are kept on save; a notice appears when only encoding or line endings differ.
  • TextVirtualized rendering for 200,000-line files and a differences overview map.
  • Merge3-way merge with Mine, Base and Theirs panes above an editable output pane.
  • MergeAutomatic merge of non-conflicting changes, compatible with git merge-file.
  • MergeResolve a conflict with Mine, Theirs, Mine + Theirs, Theirs + Mine or Base; Shift+click resolves all remaining conflicts the same way.
  • MergeConflict counter and next / previous unresolved conflict. Saving with conflicts left writes git-style markers.
  • HexStreaming hex compare for 100 MB+ files, with differences marked in hex and ASCII, go to offset, and next / previous difference.
  • HexBinary files are detected automatically and open in the hex view.
  • FolderRecursive folder compare by content, size, or size and date, with exclude globs.
  • FolderTree view with filters (all, differences, same, orphans), expand / collapse all and status counts; double-click a pair to open it.
  • CLI--headless mode: unified diff, 3-way merge (with --diff3) and folder report, with exit codes 0 / 1 / 2.
  • CLIAccepts TortoiseGit / TortoiseMerge slash switches, GNU-style options and Beyond Compare’s four-argument merge order; pane titles via /title1..4.
  • IntegrationWorks as TortoiseGit’s external Diff Viewer and Merge Tool, and as git difftool (including -d) and git mergetool with trustExitCode.
  • IntegrationA GUI merge exits 0 only when saved with no conflicts left, and 1 if cancelled or unresolved.
  • AppHome screen for picking files, folders or a 3-way merge; drag and drop anywhere in the window.
  • AppDark and light themes, keyboard navigation (F7 / Shift+F7, Ctrl+S) and unsaved-changes prompts.

Quality

  • 740 unit tests and 46 end-to-end tests covering diff, merge, encodings, folder scans, CLI parsing, the integration scripts and the packaged app’s exit codes.
  • More than 20,000 fuzz cases for the diff and merge engines.
  • Unified diff output is cross-checked byte for byte against git diff, and merge output against git merge-file.

Privacy

  • No telemetry, no account and no network connections: the app works fully offline.

Known limitations

  • Distributed as a portable zip only; there is no installer yet.
  • DiffScope.exe is not code-signed, so Windows SmartScreen may warn on first run (how to proceed).
  • Windows 10/11 x64 only. No ARM64, macOS or Linux builds.
  • No syntax highlighting, find & replace or tabs yet. These are on the roadmap.
  • Reading input from stdin (-) is not supported.
  • --headless output from the packaged exe reaches pipes and files, but not an interactive console window.