Add modern default search paths for GNU Diff on Windows.

Review Request #12945 — Created April 11, 2023 and submitted

Information

RBTools
release-4.x

Reviewers

Windows is the only modern OS that lacks any kind of a built-in diff
tool, making usage on Windows less convenient when working with SCMs
that don't provide their own native diff tool.

We've historically recommended a particular installer for GNU Diff on
Windows, but it's very old, and it's long past time we move away from
it. While there's no standalone replacement available from a
third-party, we have a few options.

Git for Windows includes a version of GNU Diff that can be run, though
it's not in the Git path unless running a Git-specific shell. Unity for
Windows also bundles a copy of GNU Diff. These are now explicitly in the
search path.

We're also going to be supplying our own copy with the RBTools for
Windows installer, which will be the first one we'll check.

The old legacy GnuWin32 version is still supported as a fallback, if
available. We now search the path directly, rather than requiring the
user to include it in the system search path.

And finally, for all platforms, we now accept gdiff as a GNU Diff
candidate, not just on SunOS. This is useful for macOS, BSD, and
Windows.

Unit tests pass.

Ran this on Windows, with the code tweaked to check all candidates
even after a match, and verified the results for all paths, depending
on what I had installed.

Summary ID
Add modern default search paths for GNU Diff on Windows.
Windows is the only modern OS that lacks any kind of a built-in diff tool, making usage on Windows less convenient when working with SCMs that don't provide their own native diff tool. We've historically recommended a particular installer for GNU Diff on Windows, but it's very old, and it's long past time we move away from it. While there's no standalone replacement available from a third-party, we have a few options. Git for Windows includes a version of GNU Diff that can be run, though it's not in the Git path unless running a Git-specific shell. Unity for Windows also bundles a copy of GNU Diff. These are now explicitly in the search path. We're also going to be supplying our own copy with the RBTools for Windows installer, which will be the first one we'll check. The old legacy GnuWin32 version is still supported as a fallback, if available. We now search the path directly, rather than requiring the user to include it in the system search path. And finally, for all platforms, we now accept `gdiff` as a GNU Diff candidate, not just on SunOS. This is useful for macOS, BSD, and Windows.
1ca1350f40c993399a9b4a3b8d734140ffb15306
david
  1. Ship It!
  2. 
      
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.x (97f22b3)