Fix 'repo cherry-pick' to avoid hanging on commit-msg update.

After performing the actual cherry-pick operation, the code
in cherry_pick.py opens a pipe to 'git commit -F' to rewrite the commit
message, emits the fixed-up commit msg to the pipe, then waits
for 'git commit' to complete. The child 'git' process winds up
hanging while reading from the pipe, however, since the parent
process still has it open. To fix the hang, change the parent process
to close its end of the pipe after it has emitted the message.

Change-Id: I5929371e69a5b076f09009d00d40a2c72ac8ac33
This commit is contained in:
Than McIntosh 2015-06-01 11:17:13 -04:00
parent 35de228f33
commit db75704bfc

View File

@ -76,6 +76,7 @@ change id will be added.
capture_stdout = True, capture_stdout = True,
capture_stderr = True) capture_stderr = True)
p.stdin.write(new_msg) p.stdin.write(new_msg)
p.stdin.close()
if p.Wait() != 0: if p.Wait() != 0:
print("error: Failed to update commit message", file=sys.stderr) print("error: Failed to update commit message", file=sys.stderr)
sys.exit(1) sys.exit(1)