4061: rbt.exe failing to find diff on Windows 10

bittebrown

What version are you running?

RBtools 0.7.5
Windows 10

What steps will reproduce the problem?

  1. Install GNU Diff
  2. Run rbt.exe post
    rbt.exe complains about diff not being present

What is the expected output? What do you see instead?

It should work and it doesn't?

What operating system are you using?

Windows 10

Attach the debug out from the command.

C:\Python27\Scripts\rbt-script.py post 1234

GNU diff is required in order to generate diffs. Make sure it is installed
and in the path.

On Windows, you can install this from:
http://gnuwin32.sourceforge.net/packages/diffutils.htm

Please provide any additional information below.

I looked into this and actually it isn't failing to find diff, the execute command in checks is erroring:

'result = execute([diff_cmd, '--version'], ignore_errors=True)'

This seems to be erroring in process.py:
if sys.platform.startswith('win'):
# Convert all environment variables to byte strings, so that subprocess
# doesn't blow up on Windows.
new_env = dict(
(six.binary_type(key), six.binary_type(value))
for key, value in six.iteritems(new_env)
)
p = subprocess.Popen(command, <<<----- HERE
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=errors_output,
shell=False,
universal_newlines=translate_newlines,
env=new_env)

Note: setting 'shell' to True in Popen fixes this issue for me!

#1 bittebrown

Using Python 2.7.11

#2 tcdanman

I'm on Windows 10, Python 2.7.11 also, and it works if I have cygwin's diff.exe in my PATH, but fails otherwise with:
"GNU diff is required in order to generate diffs. Make sure it is installed and in the path."

For others at my company, it finds the wrong diff.exe first.
This is a significant impediment for them.

I didn't notice this requirement anywhere in the documentation for running rbt post on Windows.
Could that be updated?