Comments
Patch
@@ -1296,16 +1296,19 @@ def unbundle(repo, cg, heads, source, ur
tr = repo.transaction(source)
tr.hookargs['source'] = source
tr.hookargs['url'] = url
tr.hookargs['bundle2'] = '1'
r = bundle2.processbundle(repo, cg, lambda: tr).reply
+ if r is not None:
+ repo.ui.pushbuffer(error=True, subproc=True)
+ def recordout(output):
+ r.newpart('output', data=output, mandatory=False)
tr.close()
except Exception, exc:
exc.duringunbundle2 = True
if r is not None:
parts = exc._bundle2salvagedoutput = r.salvageoutput()
- repo.ui.pushbuffer(error=True, subproc=True)
def recordout(output):
part = bundle2.bundlepart('output', data=output,
mandatory=False)
parts.append(part)
raise
@@ -210,24 +210,24 @@ add extra data to test their exchange du
push
$ hg -R main push other --rev eea13746799a --bookmark book_eea1
pushing to other
searching for changes
- pre-close-tip:eea13746799a public book_eea1
- pushkey: lock state after "phases"
- lock: free
- wlock: free
- pushkey: lock state after "bookmarks"
- lock: free
- wlock: free
- postclose-tip:eea13746799a public book_eea1
- txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_NEW_OBSMARKERS=1 HG_NODE=eea13746799a9e0bfd88f29d3c2e9dc9389f524f HG_PHASES_MOVED=1 HG_SOURCE=push HG_TXNID=TXN:* HG_TXNNAME=push HG_URL=push (glob)
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 0 changes to 0 files (-1 heads)
remote: 1 new obsolescence markers
+ remote: pre-close-tip:eea13746799a public book_eea1
+ remote: pushkey: lock state after "phases"
+ remote: lock: free
+ remote: wlock: free
+ remote: pushkey: lock state after "bookmarks"
+ remote: lock: free
+ remote: wlock: free
+ remote: postclose-tip:eea13746799a public book_eea1
+ remote: txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_NEW_OBSMARKERS=1 HG_NODE=eea13746799a9e0bfd88f29d3c2e9dc9389f524f HG_PHASES_MOVED=1 HG_SOURCE=push HG_TXNID=TXN:* HG_TXNNAME=push HG_URL=push (glob)
updating bookmark book_eea1
pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
txnclose hook: HG_SOURCE=push-response HG_TXNID=TXN:* HG_TXNNAME=push-response (glob)
file:/*/$TESTTMP/other HG_URL=file:$TESTTMP/other (glob)
@@ -302,17 +302,17 @@ push over ssh
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: 1 new obsolescence markers
- updating bookmark book_5fdd
remote: pre-close-tip:5fddd98957c8 draft book_5fdd
remote: pushkey: lock state after "bookmarks"
remote: lock: free
remote: wlock: free
remote: postclose-tip:5fddd98957c8 draft book_5fdd
remote: txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_NEW_OBSMARKERS=1 HG_NODE=5fddd98957c8a54a4d436dfe1da9d87f21a1b97b HG_SOURCE=serve HG_TXNID=TXN:* HG_TXNNAME=serve HG_URL=remote:ssh:127.0.0.1 (glob)
+ updating bookmark book_5fdd
pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
txnclose hook: HG_SOURCE=push-response HG_TXNID=TXN:* HG_TXNNAME=push-response (glob)
ssh://user@dummy/other HG_URL=ssh://user@dummy/other
$ hg -R other log -G
@@ -353,10 +353,19 @@ push over http
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: 1 new obsolescence markers
+ remote: pre-close-tip:32af7686d403 public book_32af
+ remote: pushkey: lock state after "phases"
+ remote: lock: free
+ remote: wlock: free
+ remote: pushkey: lock state after "bookmarks"
+ remote: lock: free
+ remote: wlock: free
+ remote: postclose-tip:32af7686d403 public book_32af
+ remote: txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_NEW_OBSMARKERS=1 HG_NODE=32af7686d403cf45b5d95f2d70cebea587ac806a HG_PHASES_MOVED=1 HG_SOURCE=serve HG_TXNID=TXN:* HG_TXNNAME=serve HG_URL=remote:http:127.0.0.1: (glob)
updating bookmark book_32af
pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
txnclose hook: HG_SOURCE=push-response HG_TXNID=TXN:* HG_TXNNAME=push-response (glob)
http://localhost:$HGPORT2/ HG_URL=http://localhost:$HGPORT2/
@@ -546,26 +555,27 @@ Doing the actual push: hook abort
$ cat << EOF >> $HGRCPATH
> [failpush]
> reason =
> [hooks]
- > pretxnclose.failpush = false
+ > pretxnclose.failpush = echo "You shall not pass!"; false
> txnabort.failpush = echo 'Cleaning up the mess...'
> EOF
$ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
$ 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
- pre-close-tip:e7ec4e813ba6 draft
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
+ remote: pre-close-tip:e7ec4e813ba6 draft
+ remote: You shall not pass!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
abort: pretxnclose.failpush hook exited with status 1
[255]
@@ -575,24 +585,27 @@ Doing the actual push: hook abort
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
+ remote: pre-close-tip:e7ec4e813ba6 draft
+ remote: You shall not pass!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
abort: pretxnclose.failpush hook exited with status 1
- remote: pre-close-tip:e7ec4e813ba6 draft
[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: pre-close-tip:e7ec4e813ba6 draft
+ remote: You shall not pass!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
abort: pretxnclose.failpush hook exited with status 1
[255]