4017: rbt patch not working in MINGW64 GIT bash on Windows

rhabarbersaft

What version are you running?

RBTools 0.7.5 alpha 0 (dev)

What steps will reproduce the problem?

  1. rbt patch -c 123
  2. rbt patch -C 123

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

Expected rbt to create a commit with correct author and commit message. Works fine on Linux using the same ReviewBoard server.

  1. Even when setting the EDITOR environment variable, the command fails and doesn't open an editor.
  2. The patch is being applied onto the working copy, but no commit is being created.

What operating system are you using?

Windows 10 / GIT for Windows 2.6.3

Attach the debug out from the command.

1:

$ rbt patch -d -c 161
>>> RBTools 0.7.5 alpha 0 (dev)
>>> Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]
>>> Running on Windows-8-6.2.9200
>>> Home = C:\Users\<username>
>>> Current directory = F:\<folder>
>>> Checking for a Subversion repository...
>>> Unable to execute "svn help": skipping SVN
>>> Checking for a Git repository...
>>> Running: git rev-parse --git-dir
>>> Running: git config core.bare
>>> Running: git rev-parse --show-toplevel
>>> Running: git symbolic-ref -q HEAD
>>> Running: git config --get branch.<branchname>.merge
>>> Running: git config --get branch.<branchname>.remote
>>> Running: git config --get remote.origin.url
>>> repository info: Path: git@git.<hostname>.com:<productname>, Base path: , Supports changesets: False
>>> Running: git config --get reviewboard.url
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/info/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/diffs/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/diffs/1/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/diffs/1/
>>> Running: git status --porcelain --untracked-files=no
>>> Running: git apply -3 c:\users\<username>\appdata\local\temp\tmp1klwp_
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/?force-text-type=plain
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/users/koeppben/
Patch is being applied from request 161 with diff revision 1.
Successfully applied patch.
No editor found. Set EDITOR environment variable or install vi.
Traceback (most recent call last):
  File "C:/Program Files (x86)/RBTools/bin/../Python27/Scripts/rbt-script.py", line 8, in <module>
    load_entry_point('RBTools==0.7.5alpha0', 'console_scripts', 'rbt')()
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\commands\main.py", line 133, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\commands\__init__.py", line 622, in run_from_argv
    exit_code = self.main(*args) or 0
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\commands\patch.py", line 206, in main
    not self.options.commit_no_edit)
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\clients\git.py", line 781, in create_commit
    modified_message = edit_text(message)
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\utils\console.py", line 37, in edit_text
    subprocess.call(editor.split() + [tempfile])
  File "C:\Program Files (x86)\RBTools\Python27\lib\subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Program Files (x86)\RBTools\Python27\lib\subprocess.py", line 709, in __init__
    errread, errwrite)
  File "C:\Program Files (x86)\RBTools\Python27\lib\subprocess.py", line 957, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

2:

$ rbt patch -d -C 161
>>> RBTools 0.7.5 alpha 0 (dev)
>>> Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]
>>> Running on Windows-8-6.2.9200
>>> Home = C:\Users\<username>
>>> Current directory = F:\<folder>
>>> Checking for a Subversion repository...
>>> Unable to execute "svn help": skipping SVN
>>> Checking for a Git repository...
>>> Running: git rev-parse --git-dir
>>> Running: git config core.bare
>>> Running: git rev-parse --show-toplevel
>>> Running: git symbolic-ref -q HEAD
>>> Running: git config --get branch.<branchname>.merge
>>> Running: git config --get branch.<branchname>.remote
>>> Running: git config --get remote.origin.url
>>> repository info: Path: git@git.<hostname>.com:<productname>, Base path: , Supports changesets: False
>>> Running: git config --get reviewboard.url
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/info/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/diffs/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/diffs/1/
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/diffs/1/
>>> Running: git status --porcelain --untracked-files=no
>>> Running: git apply -3 c:\users\<username>\appdata\local\temp\tmpxym9do
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/review-requests/161/?force-text-type=plain
>>> Making HTTP GET request to https://reviewboard.<hostname>.com/api/users/koeppben/
>>> Running: git commit -m "<this info is OK>" "--author=\"<author is OK>\""
Warning: Working directory is not clean.
Patch is being applied from request 161 with diff revision 1.

error: patch failed: <filename>:85
Falling back to three-way merge...
Applied patch to '<filename>' cleanly.

Successfully applied patch.
Traceback (most recent call last):
  File "C:/Program Files (x86)/RBTools/bin/../Python27/Scripts/rbt-script.py", line 8, in <module>
    load_entry_point('RBTools==0.7.5alpha0', 'console_scripts', 'rbt')()
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\commands\main.py", line 133, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\commands\__init__.py", line 622, in run_from_argv
    exit_code = self.main(*args) or 0
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\commands\patch.py", line 206, in main
    not self.options.commit_no_edit)
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\clients\git.py", line 791, in create_commit
    '--author="%s <%s>"' % (author.fullname, author.email)])
  File "C:\Program Files (x86)\RBTools\Python27\lib\site-packages\rbtools-0.7.5alpha0-py2.7.egg\rbtools\utils\process.py", line 149, in execute
    env=new_env)
  File "C:\Program Files (x86)\RBTools\Python27\lib\subprocess.py", line 709, in __init__
    errread, errwrite)
  File "C:\Program Files (x86)\RBTools\Python27\lib\subprocess.py", line 957, in _execute_child
    startupinfo)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 175: ordinal not in range(128)

Please provide any additional information below.