Mercurial > hg
changeset 34542:153e4e05e9b3
extdata: show debug message if external command exits with non-zero status
This isn't fatal because it's quite common for grep to exit with 1. Thanks to
Foozy for spotting this.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 01 Oct 2017 12:21:50 +0100 |
parents | 0a0a72c043ac |
children | 6fad8059a970 |
files | mercurial/scmutil.py tests/test-extdata.t |
diffstat | 2 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/scmutil.py Sat Sep 30 08:57:50 2017 +0100 +++ b/mercurial/scmutil.py Sun Oct 01 12:21:50 2017 +0100 @@ -1065,6 +1065,10 @@ finally: if proc: proc.communicate() + if proc.returncode != 0: + # not an error so 'cmd | grep' can be empty + repo.ui.debug("extdata command '%s' %s\n" + % (cmd, util.explainexit(proc.returncode)[0])) if src: src.close()
--- a/tests/test-extdata.t Sat Sep 30 08:57:50 2017 +0100 +++ b/tests/test-extdata.t Sun Oct 01 12:21:50 2017 +0100 @@ -12,6 +12,7 @@ > filedata = file:extdata.txt > notes = notes.txt > shelldata = shell:cat extdata.txt | grep 2 + > emptygrep = shell:cat extdata.txt | grep empty > EOF $ cat <<'EOF' > extdata.txt > 2 another comment on 2 @@ -42,6 +43,12 @@ (symbol '3')) 3 +test non-zero exit of shell command + + $ hg log -qr "extdata(emptygrep)" + $ hg log -qr "extdata(emptygrep)" --debug + extdata command 'cat extdata.txt | grep empty' exited with status * (glob) + test bad extdata() revset source $ hg log -qr "extdata()"