summaryrefslogtreecommitdiffstats
path: root/git_command.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2022-08-19 02:11:35 -0400
committerMike Frysinger <vapier@google.com>2022-08-22 19:34:59 +0000
commit63a5657ecfe1585ceda3231bfe8a6c8d9c3dafad (patch)
tree76642924ef5d6578e151dce1cecd0c3d1e408527 /git_command.py
parent07d21e6bde9bd7efdfb8f25f2ed23f023daa5c1f (diff)
downloadgit-repo-63a5657ecfe1585ceda3231bfe8a6c8d9c3dafad.tar.gz
git_command: fix input passing
After reworking this function to use subprocess for output capturing in commit c87c1863b1df392042c8859b81475a65315c8a9d ("git_command: switch process capturing over to subprocess"), passing input via stdin write no longer works. We have to pass it via communicate(), and we have to pass it a string instead of bytes (since we always use encoding='utf-8' now). This is fine since the only user of the input= setting today is already passing in a string. Bug: https://crbug.com/gerrit/16151 Change-Id: Ic58db1e568b8f8aa840a6d62c5a157c14aa6d9bc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343515 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
Diffstat (limited to 'git_command.py')
-rw-r--r--git_command.py7
1 files changed, 1 insertions, 6 deletions
diff --git a/git_command.py b/git_command.py
index a1769270..19100fa9 100644
--- a/git_command.py
+++ b/git_command.py
@@ -281,14 +281,9 @@ class GitCommand(object):
281 ssh_proxy.add_client(p) 281 ssh_proxy.add_client(p)
282 282
283 self.process = p 283 self.process = p
284 if input:
285 if isinstance(input, str):
286 input = input.encode('utf-8')
287 p.stdin.write(input)
288 p.stdin.close()
289 284
290 try: 285 try:
291 self.stdout, self.stderr = p.communicate() 286 self.stdout, self.stderr = p.communicate(input=input)
292 finally: 287 finally:
293 if ssh_proxy: 288 if ssh_proxy:
294 ssh_proxy.remove_client(p) 289 ssh_proxy.remove_client(p)