Mercurial > hg
changeset 24797:0c4d5e01b31f
bundle2-wireproto: properly propagate the server output on error (issue4594)
In case of errors, output parts salvaged from the reply bundle are re-injected
into the bundle carrying the exception.
We still need to fix the situation for non-wireprotocol push.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 16 Apr 2015 03:17:37 -0400 |
parents | 61ff209fc01d |
children | 9fbf0a2a72a1 |
files | mercurial/wireproto.py tests/test-bundle2-exchange.t |
diffstat | 2 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/wireproto.py Thu Apr 16 03:56:50 2015 -0400 +++ b/mercurial/wireproto.py Thu Apr 16 03:17:37 2015 -0400 @@ -858,6 +858,8 @@ return pusherr(str(exc)) bundler = bundle2.bundle20(repo.ui) + for out in getattr(exc, '_bundle2salvagedoutput', ()): + bundler.addpart(out) try: raise except error.BundleValueError, exc:
--- a/tests/test-bundle2-exchange.t Thu Apr 16 03:56:50 2015 -0400 +++ b/tests/test-bundle2-exchange.t Thu Apr 16 03:17:37 2015 -0400 @@ -567,6 +567,10 @@ $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6 pushing to ssh://user@dummy/other searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 1 changesets with 1 changes to 1 files abort: pretxnclose.failpush hook exited with status 1 remote: pre-close-tip:e7ec4e813ba6 draft remote: transaction abort! @@ -576,6 +580,10 @@ $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6 pushing to http://localhost:$HGPORT2/ searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 1 changesets with 1 changes to 1 files abort: pretxnclose.failpush hook exited with status 1 [255]