diff options
author | Mike Frysinger <vapier@google.com> | 2022-08-19 02:11:35 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2022-08-22 19:34:59 +0000 |
commit | 63a5657ecfe1585ceda3231bfe8a6c8d9c3dafad (patch) | |
tree | 76642924ef5d6578e151dce1cecd0c3d1e408527 | |
parent | 07d21e6bde9bd7efdfb8f25f2ed23f023daa5c1f (diff) | |
download | git-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>
-rw-r--r-- | git_command.py | 7 |
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) |