• 
      

    Add modern default search paths for GNU Diff on Windows.

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

    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.

    Commits

    Files