summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Torroja <miguel.torroja@gmail.com>2017-07-13 09:00:35 +0200
committerJunio C Hamano <gitster@pobox.com>2017-07-13 10:52:42 -0700
commit1997e91f4b36649e7e4f693ca9f35c7a6219de8c (patch)
treeefc8dc35912fa3cd05c753757ec15232f122c21c
parentb596b3b920208acb775bb632288976377636ccd1 (diff)
downloadgit-1997e91f4b36649e7e4f693ca9f35c7a6219de8c.tar.gz
git-p4: filter for {'code':'info'} in p4CmdListmt/p4-parse-G-output
The function p4CmdList accepts a new argument: skip_info. When set to True it ignores any 'code':'info' entry (skip_info=False by default). That allows us to fix some of the tests in t9831-git-p4-triggers.sh known to be broken with verobse p4 triggers Signed-off-by: Miguel Torroja <miguel.torroja@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-p4.py9
-rwxr-xr-xt/t9831-git-p4-triggers.sh4
2 files changed, 8 insertions, 5 deletions
diff --git a/git-p4.py b/git-p4.py
index e3a2791e05..2fa581789c 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -313,7 +313,7 @@ def p4_move(src, dest):
p4_system(["move", "-k", wildcard_encode(src), wildcard_encode(dest)])
def p4_last_change():
- results = p4CmdList(["changes", "-m", "1"])
+ results = p4CmdList(["changes", "-m", "1"], skip_info=True)
return int(results[0]['change'])
def p4_describe(change):
@@ -321,7 +321,7 @@ def p4_describe(change):
the presence of field "time". Return a dict of the
results."""
- ds = p4CmdList(["describe", "-s", str(change)])
+ ds = p4CmdList(["describe", "-s", str(change)], skip_info=True)
if len(ds) != 1:
die("p4 describe -s %d did not return 1 result: %s" % (change, str(ds)))
@@ -509,7 +509,7 @@ def isModeExec(mode):
def isModeExecChanged(src_mode, dst_mode):
return isModeExec(src_mode) != isModeExec(dst_mode)
-def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None):
+def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None, skip_info=False):
if isinstance(cmd,basestring):
cmd = "-G " + cmd
@@ -545,6 +545,9 @@ def p4CmdList(cmd, stdin=None, stdin_mode='w+b', cb=None):
try:
while True:
entry = marshal.load(p4.stdout)
+ if skip_info:
+ if 'code' in entry and entry['code'] == 'info':
+ continue
if cb is not None:
cb(entry)
else:
diff --git a/t/t9831-git-p4-triggers.sh b/t/t9831-git-p4-triggers.sh
index 871544b1c9..bbcf14c664 100755
--- a/t/t9831-git-p4-triggers.sh
+++ b/t/t9831-git-p4-triggers.sh
@@ -20,7 +20,7 @@ test_expect_success 'init depot' '
)
'
-test_expect_failure 'clone with extra info lines from verbose p4 trigger' '
+test_expect_success 'clone with extra info lines from verbose p4 trigger' '
test_when_finished cleanup_git &&
(
p4 triggers -i <<-EOF
@@ -38,7 +38,7 @@ test_expect_failure 'clone with extra info lines from verbose p4 trigger' '
)
'
-test_expect_failure 'import with extra info lines from verbose p4 trigger' '
+test_expect_success 'import with extra info lines from verbose p4 trigger' '
test_when_finished cleanup_git &&
(
cd "$cli" &&