[PATCH 7/8] git-remote-testpy: don't do unbuffered text I/O
- From
John Keeping <john@keeping.me.uk>
- Date
- Jan 12, 2013, 19:23 UTC
- Message-ID
- <d6f040809ad7457ff5f97fb23a2531988938a96a.1358018078.git.john@keeping.me.uk>
- In-Reply-To
- <cover.1358018078.git.john@keeping.me.uk>
Python 3 forbids unbuffered I/O in text mode. Change the reading of stdin in git-remote-testpy so that we read the lines as bytes and then decode them a line at a time.
This allows us to keep the I/O unbuffered in order to avoid reintroducing the bug fixed by commit 7fb8e16 (git-remote-testgit: fix race when spawning fast-import).
Signed-off-by: John Keeping <john@keeping.me.uk> --- git-remote-testpy.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/git-remote-testpy.py b/git-remote-testpy.py index 58aa1ae..815222f 100644 --- a/git-remote-testpy.py +++ b/git-remote-testpy.py @@ -154,7 +154,7 @@ def do_import(repo, args): refs = [ref] while True: - line = sys.stdin.readline() + line = sys.stdin.readline().decode() if line == '\n': break if not line.startswith('import '): @@ -217,7 +217,7 @@ def read_one_line(repo): line = sys.stdin.readline() - cmdline = line + cmdline = line.decode() if not cmdline: warn("Unexpected EOF") @@ -269,7 +269,7 @@ def main(args): more = True - sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0) + sys.stdin = os.fdopen(sys.stdin.fileno(), 'rb', 0) while (more): more = read_one_line(repo)
-- 1.8.1