Add the GNU diff tool implementation.

Review Request #12600 — Created Sept. 14, 2022 and submitted

Information

RBTools
release-4.x

Reviewers

This introduces the first diff tool, GNUDiffTool. This wraps around
GNU Diff, properly checking search paths, building the correct command
line, and interpreting results.

If there are multiple diff executables found in the path, this will
end up checking each until it finds GNU Diff or exhausts all options.

The implementation handles all documented GNU Diff exit codes, providing
text vs. binary flags in the result (handling old legacy binary file
indicators) and all diff output.

This will be a step up from a lot of the GNU diff executions we
currently have in the codebase, and will let us remove a lot of
different forms of error handling, binary file support, and execute name
determination.

Unit tests passed.

Tested this with some in-progress changes to switch SCMClients over. They
successfully ran GNU Diff and handled the results.

Summary ID
Add the GNU diff tool implementation.
This introduces the first diff tool, `GNUDiffTool`. This wraps around GNU Diff, properly checking search paths, building the correct command line, and interpreting results. If there are multiple `diff` executables found in the path, this will end up checking each until it finds GNU Diff or exhausts all options. The implementation handles all documented GNU Diff exit codes, providing text vs. binary flags in the result (handling old legacy binary file indicators) and all diff output. This will be a step up from a lot of the GNU diff executions we currently have in the codebase, and will let us remove a lot of different forms of error handling, binary file support, and execute name determination.
b46242c3c7161b42c0232a5ab1476461454ae9b1
Description From Last Updated

Add a Version Added:.

maubinmaubin

Add a Version Added:.

maubinmaubin
chipx86
maubin
  1. 
      
  2. Show all issues

    Add a Version Added:.

  3. Show all issues

    Add a Version Added:.

  4. 
      
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-4.x (533d38e)