diff --git a/mercurial/sshpeer.py b/mercurial/sshpeer.py --- a/mercurial/sshpeer.py +++ b/mercurial/sshpeer.py @@ -40,7 +40,7 @@ """display all data currently available on pipe as remote output. This is non blocking.""" - if pipe: + if pipe and not pipe.closed: s = procutil.readpipe(pipe) if s: display = ui.warn if warn else ui.status diff --git a/tests/test-ssh-batch.t b/tests/test-ssh-batch.t --- a/tests/test-ssh-batch.t +++ b/tests/test-ssh-batch.t @@ -10,4 +10,4 @@ further lookups don't result in tracebacks. $ hg pull -r b0 -r nosuchbookmark $(for i in $($TESTDIR/seq.py 1 20); do echo -r b$i; done) -e "\"$PYTHON\" \"$TESTDIR/dummyssh\"" ssh://user@dummy/$(pwd)/../a |& tail -n 1 - ValueError: I/O operation on closed file + StopIteration