4061: rbt.exe failing to find diff on Windows 10
What version are you running?
What steps will reproduce the problem?
- Install GNU Diff
- 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?
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:
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:
# Convert all environment variables to byte strings, so that subprocess
# doesn't blow up on Windows.
new_env = dict(
for key, value in six.iteritems(new_env)
p = subprocess.Popen(command, <<<----- HERE
Note: setting 'shell' to True in Popen fixes this issue for me!
Using Python 2.7.11
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?