Mercurial > public > mercurial-scm > hg-stable
diff tests/test-bundle2-exchange.t @ 24851:df0ce98c882f stable
bundle2: also save output when error happens during part processing
Until this changeset, we were only able to save output if an error happened
during the 'transaction.close()' phase. If the 'processbundle' call raised an
exception, the 'bundleoperation' object was never returned, so the reply bundle
was never accessible and no output could be salvaged. We introduce a quick (but
not very elegant) fix to gain access to any reply created during the processing.
This conclude this output related series. We should hopefully be able client-side to see the
whole server output, in a proper order.
The code is now complex enough that a refactoring of it would make sense on
default.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 23 Apr 2015 16:36:18 +0100 |
parents | 6b81309d15a7 |
children | 263ec70769cb |
line wrap: on
line diff
--- a/tests/test-bundle2-exchange.t Thu Apr 23 14:54:45 2015 +0100 +++ b/tests/test-bundle2-exchange.t Thu Apr 23 16:36:18 2015 +0100 @@ -619,3 +619,51 @@ $ ls -1 other/.hg/store/00changelog.i* other/.hg/store/00changelog.i +Check error from hook during the unbundling process itself + + $ cat << EOF >> $HGRCPATH + > pretxnchangegroup = echo "Fail early!"; false + > EOF + $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS # reload http config + $ hg -R other serve -p $HGPORT2 -d --pid-file=other.pid -E other-error.log + $ cat other.pid >> $DAEMON_PIDS + + $ hg -R main push other -r e7ec4e813ba6 + pushing to other + searching for changes + remote: adding changesets + remote: adding manifests + remote: adding file changes + remote: added 1 changesets with 1 changes to 1 files + remote: Fail early! + remote: transaction abort! + remote: Cleaning up the mess... + remote: rollback completed + abort: pretxnchangegroup hook exited with status 1 + [255] + $ 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 + remote: Fail early! + remote: transaction abort! + remote: Cleaning up the mess... + remote: rollback completed + abort: pretxnchangegroup hook exited with status 1 + [255] + $ 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 + remote: Fail early! + remote: transaction abort! + remote: Cleaning up the mess... + remote: rollback completed + abort: pretxnchangegroup hook exited with status 1 + [255]