Browse Source

git-p4: don't print shell commands as python lists

Previously the git-p4 script would log commands as stringified
representations of the command parameter, leading to output such as
this:

Reading pipe: ['git', 'config', '--bool', 'git-p4.useclientspec']

Now that all commands are list objects, this patch instead joins the
elements of the list into a single string so the output now looks more
readable:

Reading pipe: git config --bool git-p4.useclientspec

Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Joel Holdsworth 3 years ago committed by Junio C Hamano
parent
commit
727e6ea350
  1. 17
      git-p4.py

17
git-p4.py

@ -275,14 +275,14 @@ def run_hook_command(cmd, param): @@ -275,14 +275,14 @@ def run_hook_command(cmd, param):

def write_pipe(c, stdin, *k, **kw):
if verbose:
sys.stderr.write('Writing pipe: %s\n' % str(c))
sys.stderr.write('Writing pipe: {}\n'.format(' '.join(c)))

p = subprocess.Popen(c, stdin=subprocess.PIPE, *k, **kw)
pipe = p.stdin
val = pipe.write(stdin)
pipe.close()
if p.wait():
die('Command failed: %s' % str(c))
die('Command failed: {}'.format(' '.join(c)))

return val

@ -298,7 +298,7 @@ def read_pipe_full(c, *k, **kw): @@ -298,7 +298,7 @@ def read_pipe_full(c, *k, **kw):
text.
"""
if verbose:
sys.stderr.write('Reading pipe: %s\n' % str(c))
sys.stderr.write('Reading pipe: {}\n'.format(' '.join(c)))

p = subprocess.Popen(
c, stdout=subprocess.PIPE, stderr=subprocess.PIPE, *k, **kw)
@ -317,7 +317,7 @@ def read_pipe(c, ignore_error=False, raw=False, *k, **kw): @@ -317,7 +317,7 @@ def read_pipe(c, ignore_error=False, raw=False, *k, **kw):
if ignore_error:
out = ""
else:
die('Command failed: %s\nError: %s' % (str(c), err))
die('Command failed: {}\nError: {}'.format(' '.join(c), err))
if not raw:
out = decode_text_stream(out)
return out
@ -338,7 +338,7 @@ def p4_read_pipe(c, ignore_error=False, raw=False, *k, **kw): @@ -338,7 +338,7 @@ def p4_read_pipe(c, ignore_error=False, raw=False, *k, **kw):

def read_pipe_lines(c, raw=False, *k, **kw):
if verbose:
sys.stderr.write('Reading pipe: %s\n' % str(c))
sys.stderr.write('Reading pipe: {}\n'.format(' '.join(c)))

p = subprocess.Popen(c, stdout=subprocess.PIPE, *k, **kw)
pipe = p.stdout
@ -346,7 +346,7 @@ def read_pipe_lines(c, raw=False, *k, **kw): @@ -346,7 +346,7 @@ def read_pipe_lines(c, raw=False, *k, **kw):
if not raw:
lines = [decode_text_stream(line) for line in lines]
if pipe.close() or p.wait():
die('Command failed: %s' % str(c))
die('Command failed: {}'.format(' '.join(c)))
return lines

def p4_read_pipe_lines(c, *k, **kw):
@ -385,7 +385,8 @@ def p4_has_move_command(): @@ -385,7 +385,8 @@ def p4_has_move_command():

def system(cmd, ignore_error=False, *k, **kw):
if verbose:
sys.stderr.write("executing %s\n" % str(cmd))
sys.stderr.write("executing {}\n".format(
' '.join(cmd) if isinstance(cmd, list) else cmd))
retcode = subprocess.call(cmd, *k, **kw)
if retcode and not ignore_error:
raise CalledProcessError(retcode, cmd)
@ -720,7 +721,7 @@ def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False, @@ -720,7 +721,7 @@ def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False,

cmd = p4_build_cmd(["-G"] + cmd)
if verbose:
sys.stderr.write("Opening pipe: %s\n" % str(cmd))
sys.stderr.write("Opening pipe: {}\n".format(' '.join(cmd)))

# Use a temporary file to avoid deadlocks without
# subprocess.communicate(), which would put another copy

Loading…
Cancel
Save