Mercurial > public > mercurial-scm > hg
comparison contrib/hgclient.py @ 28836:3f45488d70df
test-commandserver: handle cStringIO.StringIO/io.StringIO divergence
author | timeless <timeless@mozdev.org> |
---|---|
date | Wed, 06 Apr 2016 20:34:34 +0000 |
parents | 897a4bbd578b |
children | 73c2b9c9cd3c |
comparison
equal
deleted
inserted
replaced
28835:68a946e83188 | 28836:3f45488d70df |
---|---|
1 # A minimal client for Mercurial's command server | 1 # A minimal client for Mercurial's command server |
2 | 2 |
3 from __future__ import absolute_import, print_function | 3 from __future__ import absolute_import, print_function |
4 import cStringIO | |
5 import os | 4 import os |
6 import signal | 5 import signal |
7 import socket | 6 import socket |
8 import struct | 7 import struct |
9 import subprocess | 8 import subprocess |
10 import sys | 9 import sys |
11 import time | 10 import time |
11 | |
12 try: | |
13 import cStringIO as io | |
14 stringio = io.StringIO | |
15 except ImportError: | |
16 import io | |
17 stringio = io.StringIO | |
12 | 18 |
13 def connectpipe(path=None): | 19 def connectpipe(path=None): |
14 cmdline = ['hg', 'serve', '--cmdserver', 'pipe'] | 20 cmdline = ['hg', 'serve', '--cmdserver', 'pipe'] |
15 if path: | 21 if path: |
16 cmdline += ['-R', path] | 22 cmdline += ['-R', path] |
81 sys.stdout.flush() | 87 sys.stdout.flush() |
82 server.stdin.write('runcommand\n') | 88 server.stdin.write('runcommand\n') |
83 writeblock(server, '\0'.join(args)) | 89 writeblock(server, '\0'.join(args)) |
84 | 90 |
85 if not input: | 91 if not input: |
86 input = cStringIO.StringIO() | 92 input = stringio() |
87 | 93 |
88 while True: | 94 while True: |
89 ch, data = readchannel(server) | 95 ch, data = readchannel(server) |
90 if ch == 'o': | 96 if ch == 'o': |
91 output.write(outfilter(data)) | 97 output.write(outfilter(data)) |