##// END OF EJS Templates
debugcommands: introduce new debugrequirements command...
debugcommands: introduce new debugrequirements command This for now just prints out the list of current requirements. In future this will be helpful in reading requirements from couple of sources, and checking which requirement comes from where. Differential Revision: https://phab.mercurial-scm.org/D8632

File last commit:

r43167:d7304434 default
r45667:4a28f5e8 default
Show More
test-bundle2-exchange.t
1151 lines | 42.4 KiB | text/troff | Tads3Lexer
/ tests / test-bundle2-exchange.t
Gregory Szorc
tests: test using both versions of SSH protocol...
r36235 #testcases sshv1 sshv2
#if sshv2
$ cat >> $HGRCPATH << EOF
> [experimental]
> sshpeer.advertise-v2 = true
> sshserver.support-v2 = true
> EOF
#endif
Pierre-Yves David
bundle2: split test in two...
r22660 Test exchange of common information using bundle2
$ getmainid() {
> hg -R main log --template '{node}\n' --rev "$1"
> }
enable obsolescence
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 $ cp $HGRCPATH $TESTTMP/hgrc.orig
Martin von Zweigbergk
test-bundle2-exchange: create temp script in $TESTTMP, not $TESTDIR...
r23759 $ cat > $TESTTMP/bundle2-pushkey-hook.sh << EOF
Matt Harbison
tests: make a multi-statement hook in bundle2-exchange Windows compatible...
r23672 > echo pushkey: lock state after \"\$HG_NAMESPACE\"
> hg debuglock
> EOF
Pierre-Yves David
bundle2: split test in two...
r22660 $ cat >> $HGRCPATH << EOF
> [experimental]
Boris Feld
config: use 'experimental.evolution.create-markers'...
r34867 > evolution.createmarkers=True
Boris Feld
config: use 'experimental.evolution.exchange'...
r34869 > evolution.exchange=True
Pierre-Yves David
bundle2: disable ouput capture unless we use http (issue4613 issue4615)...
r24878 > bundle2-output-capture=True
Pierre-Yves David
bundle2: split test in two...
r22660 > [ui]
Matt Harbison
tests: quote $PYTHON for Windows...
r33335 > ssh="$PYTHON" "$TESTDIR/dummyssh"
Pierre-Yves David
bundle2: split test in two...
r22660 > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline}
> [web]
> push_ssl = false
> allow_push = *
> [phases]
> publish=False
Pierre-Yves David
test-bundle2: test that we got appropriate hook called with appropriate data...
r22938 > [hooks]
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 > pretxnclose.tip = hg log -r tip -T "pre-close-tip:{node|short} {phase} {bookmarks}\n"
> txnclose.tip = hg log -r tip -T "postclose-tip:{node|short} {phase} {bookmarks}\n"
Matt Mackall
tests: simplify printenv calls...
r25478 > txnclose.env = sh -c "HG_LOCAL= printenv.py txnclose"
Martin von Zweigbergk
test-bundle2-exchange: create temp script in $TESTTMP, not $TESTDIR...
r23759 > pushkey= sh "$TESTTMP/bundle2-pushkey-hook.sh"
Pierre-Yves David
bundle2: split test in two...
r22660 > EOF
The extension requires a repo (currently unused)
$ hg init main
$ cd main
$ touch a
$ hg add a
$ hg commit -m 'a'
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 pre-close-tip:3903775176ed draft
postclose-tip:3903775176ed draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_PHASES_MOVED=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=commit
Pierre-Yves David
bundle2: split test in two...
r22660
$ hg unbundle $TESTDIR/bundles/rebase.hg
adding changesets
adding manifests
adding file changes
changegroup: move message about added changes to transaction summary...
r43167 pre-close-tip:02de42196ebe draft
Pierre-Yves David
bundle2: split test in two...
r22660 added 8 changesets with 7 changes to 7 files (+3 heads)
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets cd010b8cd998:02de42196ebe (8 drafts)
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NODE=cd010b8cd998f3981a5a8115f94f8da4ab506089 HG_NODE_LAST=02de42196ebee42ef284b6780a87cdc96e8eaab6 HG_PHASES_MOVED=1 HG_SOURCE=unbundle HG_TXNID=TXN:$ID$ HG_TXNNAME=unbundle
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 bundle:*/tests/bundles/rebase.hg HG_URL=bundle:*/tests/bundles/rebase.hg (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 (run 'hg heads' to see heads, 'hg merge' to merge)
$ cd ..
Real world exchange
=====================
Add more obsolescence information
$ hg -R main debugobsolete -d '0 0' 1111111111111111111111111111111111111111 `getmainid 9520eea781bc`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main debugobsolete -d '0 0' 2222222222222222222222222222222222222222 `getmainid 24b6387c8c8c`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660
clone --pull
$ hg -R main phase --public cd010b8cd998
Pierre-Yves David
changelog: fix readpending if no pending data exist (issue4609)...
r24822 pre-close-tip:02de42196ebe draft
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_PHASES_MOVED=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=phase
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg clone main other --pull --rev 9520eea781bc
adding changesets
adding manifests
adding file changes
changegroup: move message about added changes to transaction summary...
r43167 pre-close-tip:9520eea781bc draft
Pierre-Yves David
bundle2: split test in two...
r22660 added 2 changesets with 2 changes to 2 files
1 new obsolescence markers
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets cd010b8cd998:9520eea781bc (1 drafts)
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 postclose-tip:9520eea781bc draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=cd010b8cd998f3981a5a8115f94f8da4ab506089 HG_NODE_LAST=9520eea781bcca16c1e15acc0ba14335a0e8e5ba HG_PHASES_MOVED=1 HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_TXNNAME=pull
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 file:/*/$TESTTMP/main HG_URL=file:$TESTTMP/main (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R other log -G
@ 1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com> E
|
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
pull
$ hg -R main phase --public 9520eea781bc
Pierre-Yves David
changelog: fix readpending if no pending data exist (issue4609)...
r24822 pre-close-tip:02de42196ebe draft
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_PHASES_MOVED=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=phase
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other pull -r 24b6387c8c8c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/main
Pierre-Yves David
bundle2: split test in two...
r22660 searching for changes
adding changesets
adding manifests
adding file changes
changegroup: move message about added changes to transaction summary...
r43167 pre-close-tip:24b6387c8c8c draft
Pierre-Yves David
bundle2: split test in two...
r22660 added 1 changesets with 1 changes to 1 files (+1 heads)
1 new obsolescence markers
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 24b6387c8c8c (1 drafts)
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 postclose-tip:24b6387c8c8c draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=24b6387c8c8cae37178880f3fa95ded3cb1cf785 HG_NODE_LAST=24b6387c8c8cae37178880f3fa95ded3cb1cf785 HG_PHASES_MOVED=1 HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_TXNNAME=pull
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 file:/*/$TESTTMP/main HG_URL=file:$TESTTMP/main (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg -R other log -G
o 2:24b6387c8c8c draft Nicolas Dumazet <nicdumz.commits@gmail.com> F
|
| @ 1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com> E
|/
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
pull empty (with phase movement)
$ hg -R main phase --public 24b6387c8c8c
Pierre-Yves David
changelog: fix readpending if no pending data exist (issue4609)...
r24822 pre-close-tip:02de42196ebe draft
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_PHASES_MOVED=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=phase
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other pull -r 24b6387c8c8c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/main
Pierre-Yves David
bundle2: split test in two...
r22660 no changes found
Pierre-Yves David
changelog: fix readpending if no pending data exist (issue4609)...
r24822 pre-close-tip:24b6387c8c8c public
Boris Feld
phases: use "published" in the phase movement message...
r38268 1 local changesets published
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=0 HG_PHASES_MOVED=1 HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_TXNNAME=pull
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 file:/*/$TESTTMP/main HG_URL=file:$TESTTMP/main (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other log -G
o 2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com> F
|
| @ 1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com> E
|/
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
pull empty
$ hg -R other pull -r 24b6387c8c8c
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 pulling from $TESTTMP/main
Pierre-Yves David
bundle2: split test in two...
r22660 no changes found
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 pre-close-tip:24b6387c8c8c public
postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=0 HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_TXNNAME=pull
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 file:/*/$TESTTMP/main HG_URL=file:$TESTTMP/main (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other log -G
o 2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com> F
|
| @ 1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com> E
|/
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
add extra data to test their exchange during push
$ hg -R main bookmark --rev eea13746799a book_eea1
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:02de42196ebe draft
postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main debugobsolete -d '0 0' 3333333333333333333333333333333333333333 `getmainid eea13746799a`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main bookmark --rev 02de42196ebe book_02de
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main debugobsolete -d '0 0' 4444444444444444444444444444444444444444 `getmainid 02de42196ebe`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft book_02de
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main bookmark --rev 42ccdea3bb16 book_42cc
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main debugobsolete -d '0 0' 5555555555555555555555555555555555555555 `getmainid 42ccdea3bb16`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft book_02de
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main bookmark --rev 5fddd98957c8 book_5fdd
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main debugobsolete -d '0 0' 6666666666666666666666666666666666666666 `getmainid 5fddd98957c8`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft book_02de
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main bookmark --rev 32af7686d403 book_32af
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main debugobsolete -d '0 0' 7777777777777777777777777777777777777777 `getmainid 32af7686d403`
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 pre-close-tip:02de42196ebe draft book_02de
debugobsolete: also issue the "new obsmarkers" messsage...
r43163 1 new obsolescence markers
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=debugobsolete
Pierre-Yves David
bundle2: split test in two...
r22660
$ hg -R other bookmark --rev cd010b8cd998 book_eea1
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:24b6387c8c8c public
postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other bookmark --rev cd010b8cd998 book_02de
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:24b6387c8c8c public
postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other bookmark --rev cd010b8cd998 book_42cc
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:24b6387c8c8c public
postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other bookmark --rev cd010b8cd998 book_5fdd
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:24b6387c8c8c public
postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other bookmark --rev cd010b8cd998 book_32af
Pierre-Yves David
bookmarks: change bookmark within a transaction...
r25744 pre-close-tip:24b6387c8c8c public
postclose-tip:24b6387c8c8c public
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=bookmark
Pierre-Yves David
bundle2: split test in two...
r22660
$ hg -R main phase --public eea13746799a
Pierre-Yves David
changelog: fix readpending if no pending data exist (issue4609)...
r24822 pre-close-tip:02de42196ebe draft book_02de
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_PHASES_MOVED=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=phase
Pierre-Yves David
bundle2: split test in two...
r22660
push
$ hg -R main push other --rev eea13746799a --bookmark book_eea1
pushing to other
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
changegroup: move message about added changes to transaction summary...
r43167 remote: pre-close-tip:eea13746799a public book_eea1
Pierre-Yves David
bundle2: split test in two...
r22660 remote: added 1 changesets with 0 changes to 0 files (-1 heads)
remote: 1 new obsolescence markers
Boris Feld
bookmarks: fix pushkey compatibility mode (issue5777)...
r35829 remote: pushkey: lock state after "bookmarks"
Boris Feld
bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey'...
r35673 remote: lock: free
remote: wlock: free
Pierre-Yves David
bundle2: capture output issue during transaction close...
r24850 remote: postclose-tip:eea13746799a public book_eea1
Pierre-Yves David
hook: add hook name information to external hook...
r31747 remote: txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=eea13746799a9e0bfd88f29d3c2e9dc9389f524f HG_NODE_LAST=eea13746799a9e0bfd88f29d3c2e9dc9389f524f HG_PHASES_MOVED=1 HG_SOURCE=push HG_TXNID=TXN:$ID$ HG_TXNNAME=push HG_URL=file:$TESTTMP/other
Pierre-Yves David
bundle2: split test in two...
r22660 updating bookmark book_eea1
Eric Sumner
push: elevate phase transaction to cover entire operation...
r23437 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_SOURCE=push-response HG_TXNID=TXN:$ID$ HG_TXNNAME=push-response
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 file:/*/$TESTTMP/other HG_URL=file:$TESTTMP/other (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other log -G
o 3:eea13746799a public Nicolas Dumazet <nicdumz.commits@gmail.com> book_eea1 G
|\
| o 2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com> F
| |
@ | 1:9520eea781bc public Nicolas Dumazet <nicdumz.commits@gmail.com> E
|/
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_02de book_32af book_42cc book_5fdd A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
pull over ssh
$ hg -R other pull ssh://user@dummy/main -r 02de42196ebe --bookmark book_02de
pulling from ssh://user@dummy/main
searching for changes
adding changesets
adding manifests
adding file changes
updating bookmark book_02de
Pierre-Yves David
phases: read pending data when appropriate...
r23361 pre-close-tip:02de42196ebe draft book_02de
changegroup: move message about added changes to transaction summary...
r43167 added 1 changesets with 1 changes to 1 files (+1 heads)
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 1 new obsolescence markers
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 02de42196ebe (1 drafts)
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=02de42196ebee42ef284b6780a87cdc96e8eaab6 HG_NODE_LAST=02de42196ebee42ef284b6780a87cdc96e8eaab6 HG_PHASES_MOVED=1 HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_TXNNAME=pull
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 ssh://user@dummy/main HG_URL=ssh://user@dummy/main
Pierre-Yves David
bundle2: split test in two...
r22660 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
pull over http
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R main -p $HGPORT -d --pid-file=main.pid -E main-error.log
Pierre-Yves David
bundle2: split test in two...
r22660 $ cat main.pid >> $DAEMON_PIDS
$ hg -R other pull http://localhost:$HGPORT/ -r 42ccdea3bb16 --bookmark book_42cc
pulling from http://localhost:$HGPORT/
searching for changes
adding changesets
adding manifests
adding file changes
updating bookmark book_42cc
Pierre-Yves David
phases: read pending data when appropriate...
r23361 pre-close-tip:42ccdea3bb16 draft book_42cc
changegroup: move message about added changes to transaction summary...
r43167 added 1 changesets with 1 changes to 1 files (+1 heads)
transaction: issue "new obsmarkers" message at the end of the transaction...
r43164 1 new obsolescence markers
Boris Feld
phase: report number of non-public changeset alongside the new range...
r39516 new changesets 42ccdea3bb16 (1 drafts)
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 postclose-tip:42ccdea3bb16 draft book_42cc
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_BOOKMARK_MOVED=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 HG_NODE_LAST=42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 HG_PHASES_MOVED=1 HG_SOURCE=pull HG_TXNID=TXN:$ID$ HG_TXNNAME=pull
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 http://localhost:$HGPORT/ HG_URL=http://localhost:$HGPORT/
Pierre-Yves David
bundle2: split test in two...
r22660 (run 'hg heads .' to see heads, 'hg merge' to merge)
$ cat main-error.log
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
push over ssh
$ hg -R main push ssh://user@dummy/other -r 5fddd98957c8 --bookmark book_5fdd
pushing to ssh://user@dummy/other
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
changegroup: move message about added changes to transaction summary...
r43167 remote: pre-close-tip:5fddd98957c8 draft book_5fdd
Pierre-Yves David
bundle2: split test in two...
r22660 remote: added 1 changesets with 1 changes to 1 files
remote: 1 new obsolescence markers
Boris Feld
bookmarks: fix pushkey compatibility mode (issue5777)...
r35829 remote: pushkey: lock state after "bookmarks"
Boris Feld
bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey'...
r35673 remote: lock: free
remote: wlock: free
Pierre-Yves David
test-bundle2: check visible data in pre/post-transaction hooks...
r23359 remote: postclose-tip:5fddd98957c8 draft book_5fdd
Pierre-Yves David
hook: add hook name information to external hook...
r31747 remote: txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=5fddd98957c8a54a4d436dfe1da9d87f21a1b97b HG_NODE_LAST=5fddd98957c8a54a4d436dfe1da9d87f21a1b97b HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_TXNNAME=serve HG_URL=remote:ssh:$LOCALIP
Pierre-Yves David
bundle2: capture output issue during transaction close...
r24850 updating bookmark book_5fdd
Eric Sumner
push: elevate phase transaction to cover entire operation...
r23437 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_SOURCE=push-response HG_TXNID=TXN:$ID$ HG_TXNNAME=push-response
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 ssh://user@dummy/other HG_URL=ssh://user@dummy/other
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R other log -G
o 6:5fddd98957c8 draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_5fdd C
|
o 5:42ccdea3bb16 draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_42cc B
|
| o 4:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_02de H
| |
| | o 3:eea13746799a public Nicolas Dumazet <nicdumz.commits@gmail.com> book_eea1 G
| |/|
| o | 2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com> F
|/ /
| @ 1:9520eea781bc public Nicolas Dumazet <nicdumz.commits@gmail.com> E
|/
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_32af A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
push over http
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R other -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
Pierre-Yves David
bundle2: split test in two...
r22660 $ cat other.pid >> $DAEMON_PIDS
$ hg -R main phase --public 32af7686d403
Pierre-Yves David
changelog: fix readpending if no pending data exist (issue4609)...
r24822 pre-close-tip:02de42196ebe draft book_02de
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_PHASES_MOVED=1 HG_TXNID=TXN:$ID$ HG_TXNNAME=phase
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg -R main push http://localhost:$HGPORT2/ -r 32af7686d403 --bookmark book_32af
pushing to http://localhost:$HGPORT2/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
changegroup: move message about added changes to transaction summary...
r43167 remote: pre-close-tip:32af7686d403 public book_32af
Pierre-Yves David
bundle2: split test in two...
r22660 remote: added 1 changesets with 1 changes to 1 files
remote: 1 new obsolescence markers
Boris Feld
bookmarks: fix pushkey compatibility mode (issue5777)...
r35829 remote: pushkey: lock state after "bookmarks"
Boris Feld
bookmark: run 'pushkey' hooks after bookmark move, not 'prepushkey'...
r35673 remote: lock: free
remote: wlock: free
Pierre-Yves David
bundle2: capture output issue during transaction close...
r24850 remote: postclose-tip:32af7686d403 public book_32af
Augie Fackler
tests: fix missing (glob) annotations in test-bundle2-exchange.t
r31812 remote: txnclose hook: HG_BOOKMARK_MOVED=1 HG_BUNDLE2=1 HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_NEW_OBSMARKERS=1 HG_NODE=32af7686d403cf45b5d95f2d70cebea587ac806a HG_NODE_LAST=32af7686d403cf45b5d95f2d70cebea587ac806a HG_PHASES_MOVED=1 HG_SOURCE=serve HG_TXNID=TXN:$ID$ HG_TXNNAME=serve HG_URL=remote:http:$LOCALIP: (glob)
Pierre-Yves David
bundle2: split test in two...
r22660 updating bookmark book_32af
Eric Sumner
push: elevate phase transaction to cover entire operation...
r23437 pre-close-tip:02de42196ebe draft book_02de
postclose-tip:02de42196ebe draft book_02de
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_SOURCE=push-response HG_TXNID=TXN:$ID$ HG_TXNNAME=push-response
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 http://localhost:$HGPORT2/ HG_URL=http://localhost:$HGPORT2/
Pierre-Yves David
bundle2: split test in two...
r22660 $ cat other-error.log
Check final content.
$ hg -R other log -G
o 7:32af7686d403 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_32af D
|
o 6:5fddd98957c8 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_5fdd C
|
o 5:42ccdea3bb16 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_42cc B
|
| o 4:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_02de H
| |
| | o 3:eea13746799a public Nicolas Dumazet <nicdumz.commits@gmail.com> book_eea1 G
| |/|
| o | 2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com> F
|/ /
| @ 1:9520eea781bc public Nicolas Dumazet <nicdumz.commits@gmail.com> E
|/
o 0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> A
$ hg -R other debugobsolete
1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
7777777777777777777777777777777777777777 32af7686d403cf45b5d95f2d70cebea587ac806a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
Pierre-Yves David
transaction: write pending generated files...
r23358 (check that no 'pending' files remain)
$ ls -1 other/.hg/bookmarks*
other/.hg/bookmarks
$ ls -1 other/.hg/store/phaseroots*
other/.hg/store/phaseroots
$ ls -1 other/.hg/store/00changelog.i*
other/.hg/store/00changelog.i
Pierre-Yves David
bundle2: split test in two...
r22660 Error Handling
==============
Check that errors are properly returned to the client during push.
Setting up
$ cat > failpush.py << EOF
> """A small extension that makes push fails when using bundle2
>
> used to test error handling in bundle2
> """
>
Pierre-Yves David
error: get Abort from 'error' instead of 'util'...
r26587 > from mercurial import error
Pierre-Yves David
bundle2: split test in two...
r22660 > from mercurial import bundle2
> from mercurial import exchange
> from mercurial import extensions
Boris Feld
configitems: register the test 'failpush.reason' config
r34764 > from mercurial import registrar
> cmdtable = {}
> command = registrar.command(cmdtable)
>
> configtable = {}
> configitem = registrar.configitem(configtable)
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > configitem(b'failpush', b'reason',
Boris Feld
configitems: register the test 'failpush.reason' config
r34764 > default=None,
> )
Pierre-Yves David
bundle2: split test in two...
r22660 >
> def _pushbundle2failpart(pushop, bundler):
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > reason = pushop.ui.config(b'failpush', b'reason')
Pierre-Yves David
bundle2: split test in two...
r22660 > part = None
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > if reason == b'abort':
> bundler.newpart(b'test:abort')
> if reason == b'unknown':
> bundler.newpart(b'test:unknown')
> if reason == b'race':
Pierre-Yves David
bundle2: split test in two...
r22660 > # 20 Bytes of crap
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > bundler.newpart(b'check:heads', data=b'01234567890123456789')
Pierre-Yves David
bundle2: split test in two...
r22660 >
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > @bundle2.parthandler(b"test:abort")
Pierre-Yves David
bundle2: split test in two...
r22660 > def handleabort(op, part):
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > raise error.Abort(b'Abandon ship!', hint=b"don't panic")
Pierre-Yves David
bundle2: split test in two...
r22660 >
> def uisetup(ui):
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > exchange.b2partsgenmapping[b'failpart'] = _pushbundle2failpart
> exchange.b2partsgenorder.insert(0, b'failpart')
Pierre-Yves David
bundle2: split test in two...
r22660 >
> EOF
$ cd main
$ hg up tip
3 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ echo 'I' > I
$ hg add I
$ hg ci -m 'I'
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 pre-close-tip:e7ec4e813ba6 draft
postclose-tip:e7ec4e813ba6 draft
Pierre-Yves David
hook: add hook name information to external hook...
r31747 txnclose hook: HG_HOOKNAME=txnclose.env HG_HOOKTYPE=txnclose HG_TXNID=TXN:$ID$ HG_TXNNAME=commit
Pierre-Yves David
bundle2: split test in two...
r22660 $ hg id
e7ec4e813ba6 tip
$ cd ..
$ cat << EOF >> $HGRCPATH
> [extensions]
> failpush=$TESTTMP/failpush.py
> EOF
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R other -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
Pierre-Yves David
bundle2: split test in two...
r22660 $ cat other.pid >> $DAEMON_PIDS
Doing the actual push: Abort error
$ cat << EOF >> $HGRCPATH
> [failpush]
> reason = abort
> EOF
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
abort: Abandon ship!
(don't panic)
[255]
$ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
pushing to ssh://user@dummy/other
searching for changes
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: Abandon ship!
Pierre-Yves David
bundle2: keep hint close to the primary message when remote abort...
r30908 remote: (don't panic)
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 abort: push failed on remote
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
$ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
pushing to http://localhost:$HGPORT2/
searching for changes
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: Abandon ship!
Pierre-Yves David
bundle2: keep hint close to the primary message when remote abort...
r30908 remote: (don't panic)
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 abort: push failed on remote
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
Doing the actual push: unknown mandatory parts
$ cat << EOF >> $HGRCPATH
> [failpush]
> reason = unknown
> EOF
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
abort: missing support for test:unknown
[255]
$ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
pushing to ssh://user@dummy/other
searching for changes
abort: missing support for test:unknown
[255]
$ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
pushing to http://localhost:$HGPORT2/
searching for changes
abort: missing support for test:unknown
[255]
Doing the actual push: race
$ cat << EOF >> $HGRCPATH
> [failpush]
> reason = race
> EOF
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
abort: push failed:
Taapas Agrawal
push: add "remote" to 'repository changed while pushing' messages (issue5971)...
r40182 'remote repository changed while pushing - please try again'
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
$ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
pushing to ssh://user@dummy/other
searching for changes
abort: push failed:
Taapas Agrawal
push: add "remote" to 'repository changed while pushing' messages (issue5971)...
r40182 'remote repository changed while pushing - please try again'
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
$ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
pushing to http://localhost:$HGPORT2/
searching for changes
abort: push failed:
Taapas Agrawal
push: add "remote" to 'repository changed while pushing' messages (issue5971)...
r40182 'remote repository changed while pushing - please try again'
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
Doing the actual push: hook abort
$ cat << EOF >> $HGRCPATH
> [failpush]
> reason =
> [hooks]
Matt Harbison
test-bundle2-exchange: make hooks compatible with Windows...
r24860 > pretxnclose.failpush = sh -c "echo 'You shall not pass!'; false"
> txnabort.failpush = sh -c "echo 'Cleaning up the mess...'"
Pierre-Yves David
bundle2: split test in two...
r22660 > EOF
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R other -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
Pierre-Yves David
bundle2: split test in two...
r22660 $ cat other.pid >> $DAEMON_PIDS
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
Pierre-Yves David
bundle2-localpeer: properly propagate the server output on error (issue4594)...
r24799 remote: adding changesets
remote: adding manifests
remote: adding file changes
Pierre-Yves David
bundle2: capture output issue during transaction close...
r24850 remote: pre-close-tip:e7ec4e813ba6 draft
remote: You shall not pass!
Pierre-Yves David
bundle2: capture transaction rollback message output (issue4614)...
r24847 remote: transaction abort!
Pierre-Yves David
bundle2: also capture hook output during processing...
r24849 remote: Cleaning up the mess...
Pierre-Yves David
bundle2: capture transaction rollback message output (issue4614)...
r24847 remote: rollback completed
Pierre-Yves David
bundle2: test hooking using the new transaction-level hook...
r24285 abort: pretxnclose.failpush hook exited with status 1
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
$ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
pushing to ssh://user@dummy/other
searching for changes
Pierre-Yves David
bundle2-wireproto: properly propagate the server output on error (issue4594)...
r24797 remote: adding changesets
remote: adding manifests
remote: adding file changes
Pierre-Yves David
bundle2: capture output issue during transaction close...
r24850 remote: pre-close-tip:e7ec4e813ba6 draft
remote: You shall not pass!
Pierre-Yves David
bundle2: capture transaction rollback message output (issue4614)...
r24847 remote: transaction abort!
Pierre-Yves David
bundle2: also capture hook output during processing...
r24849 remote: Cleaning up the mess...
Pierre-Yves David
bundle2: capture transaction rollback message output (issue4614)...
r24847 remote: rollback completed
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: pretxnclose.failpush hook exited with status 1
abort: push failed on remote
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
$ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
pushing to http://localhost:$HGPORT2/
searching for changes
Pierre-Yves David
bundle2-wireproto: properly propagate the server output on error (issue4594)...
r24797 remote: adding changesets
remote: adding manifests
remote: adding file changes
Pierre-Yves David
bundle2: capture output issue during transaction close...
r24850 remote: pre-close-tip:e7ec4e813ba6 draft
remote: You shall not pass!
Pierre-Yves David
bundle2: capture transaction rollback message output (issue4614)...
r24847 remote: transaction abort!
Pierre-Yves David
bundle2: also capture hook output during processing...
r24849 remote: Cleaning up the mess...
Pierre-Yves David
bundle2: capture transaction rollback message output (issue4614)...
r24847 remote: rollback completed
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: pretxnclose.failpush hook exited with status 1
abort: push failed on remote
Pierre-Yves David
bundle2: split test in two...
r22660 [255]
Pierre-Yves David
transaction: write pending generated files...
r23358 (check that no 'pending' files remain)
Pierre-Yves David
bundle2: split test in two...
r22660
Pierre-Yves David
transaction: write pending generated files...
r23358 $ ls -1 other/.hg/bookmarks*
other/.hg/bookmarks
$ ls -1 other/.hg/store/phaseroots*
other/.hg/store/phaseroots
$ ls -1 other/.hg/store/00changelog.i*
other/.hg/store/00changelog.i
Pierre-Yves David
bundle2: also save output when error happens during part processing...
r24851 Check error from hook during the unbundling process itself
$ cat << EOF >> $HGRCPATH
Matt Harbison
test-bundle2-exchange: make hooks compatible with Windows...
r24860 > pretxnchangegroup = sh -c "echo 'Fail early!'; false"
Pierre-Yves David
bundle2: also save output when error happens during part processing...
r24851 > EOF
Matt Mackall
tests: drop DAEMON_PIDS from killdaemons calls
r25474 $ killdaemons.py # reload http config
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R other -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
Pierre-Yves David
bundle2: also save output when error happens during part processing...
r24851 $ 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: 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: Fail early!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: pretxnchangegroup hook exited with status 1
abort: push failed on remote
Pierre-Yves David
bundle2: also save output when error happens during part processing...
r24851 [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: Fail early!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: pretxnchangegroup hook exited with status 1
abort: push failed on remote
Pierre-Yves David
bundle2: also save output when error happens during part processing...
r24851 [255]
Pierre-Yves David
bundle2: disable ouput capture unless we use http (issue4613 issue4615)...
r24878
Check output capture control.
(should be still forced for http, disabled for local and ssh)
$ cat >> $HGRCPATH << EOF
> [experimental]
> bundle2-output-capture=False
> EOF
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
adding changesets
adding manifests
adding file changes
Fail early!
transaction abort!
Cleaning up the mess...
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: Fail early!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: pretxnchangegroup hook exited with status 1
abort: push failed on remote
Pierre-Yves David
bundle2: disable ouput capture unless we use http (issue4613 issue4615)...
r24878 [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: Fail early!
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: pretxnchangegroup hook exited with status 1
abort: push failed on remote
Pierre-Yves David
bundle2: disable ouput capture unless we use http (issue4613 issue4615)...
r24878 [255]
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481
Check abort from mandatory pushkey
$ cat > mandatorypart.py << EOF
> from mercurial import exchange
> from mercurial import pushkey
> from mercurial import node
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 > from mercurial import error
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > @exchange.b2partsgenerator(b'failingpuskey')
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 > def addfailingpushey(pushop, bundler):
> enc = pushkey.encode
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > part = bundler.newpart(b'pushkey')
> part.addparam(b'namespace', enc(b'phases'))
> part.addparam(b'key', enc(b'cd010b8cd998f3981a5a8115f94f8da4ab506089'))
> part.addparam(b'old', enc(b'0')) # successful update
> part.addparam(b'new', enc(b'0'))
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 > def fail(pushop, exc):
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > raise error.Abort(b'Correct phase push failed (because hooks)')
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 > pushop.pkfailcb[part.id] = fail
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 > EOF
$ cat >> $HGRCPATH << EOF
> [hooks]
> pretxnchangegroup=
> pretxnclose.failpush=
> prepushkey.failpush = sh -c "echo 'do not push the key !'; false"
> [extensions]
> mandatorypart=$TESTTMP/mandatorypart.py
> EOF
$ "$TESTDIR/killdaemons.py" $DAEMON_PIDS # reload http config
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R other -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 $ cat other.pid >> $DAEMON_PIDS
(Failure from a hook)
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
adding changesets
adding manifests
adding file changes
do not push the key !
pushkey-abort: prepushkey.failpush hook exited with status 1
transaction abort!
Cleaning up the mess...
rollback completed
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 abort: Correct phase push failed (because hooks)
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 [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: do not push the key !
remote: pushkey-abort: prepushkey.failpush hook exited with status 1
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
Pierre-Yves David
bundle2: convey PushkeyFailed error over the wire...
r25493 abort: Correct phase push failed (because hooks)
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 [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: do not push the key !
remote: pushkey-abort: prepushkey.failpush hook exited with status 1
remote: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
Pierre-Yves David
bundle2: convey PushkeyFailed error over the wire...
r25493 abort: Correct phase push failed (because hooks)
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 [255]
(Failure from a the pushkey)
$ cat > mandatorypart.py << EOF
> from mercurial import exchange
> from mercurial import pushkey
> from mercurial import node
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 > from mercurial import error
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > @exchange.b2partsgenerator(b'failingpuskey')
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 > def addfailingpushey(pushop, bundler):
> enc = pushkey.encode
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > part = bundler.newpart(b'pushkey')
> part.addparam(b'namespace', enc(b'phases'))
> part.addparam(b'key', enc(b'cd010b8cd998f3981a5a8115f94f8da4ab506089'))
> part.addparam(b'old', enc(b'4')) # will fail
> part.addparam(b'new', enc(b'3'))
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 > def fail(pushop, exc):
Augie Fackler
tests: update inline extensions in test-bundle2-exchange.t to py3...
r37766 > raise error.Abort(b'Clown phase push failed')
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 > pushop.pkfailcb[part.id] = fail
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 > EOF
$ cat >> $HGRCPATH << EOF
> [hooks]
> prepushkey.failpush =
> EOF
$ "$TESTDIR/killdaemons.py" $DAEMON_PIDS # reload http config
Jun Wu
tests: reorder hg serve commands...
r28549 $ hg serve -R other -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 $ cat other.pid >> $DAEMON_PIDS
$ hg -R main push other -r e7ec4e813ba6
pushing to other
searching for changes
adding changesets
adding manifests
adding file changes
transaction abort!
Cleaning up the mess...
rollback completed
pushkey: lock state after "phases"
lock: free
wlock: free
Pierre-Yves David
push: catch and process PushkeyFailed error...
r25485 abort: Clown phase push failed
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 [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: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
remote: pushkey: lock state after "phases"
remote: lock: free
remote: wlock: free
Pierre-Yves David
bundle2: convey PushkeyFailed error over the wire...
r25493 abort: Clown phase push failed
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 [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: transaction abort!
remote: Cleaning up the mess...
remote: rollback completed
remote: pushkey: lock state after "phases"
remote: lock: free
remote: wlock: free
Pierre-Yves David
bundle2: convey PushkeyFailed error over the wire...
r25493 abort: Clown phase push failed
Pierre-Yves David
bundle2: abort when a mandatory pushkey part fails...
r25481 [255]
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 Test lazily acquiring the lock during unbundle
$ cp $TESTTMP/hgrc.orig $HGRCPATH
$ cat >> $HGRCPATH <<EOF
> [ui]
Matt Harbison
tests: quote $PYTHON for Windows...
r33335 > ssh="$PYTHON" "$TESTDIR/dummyssh"
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 > EOF
$ cat >> $TESTTMP/locktester.py <<EOF
> import os
Matt Harbison
py3: fix module imports in tests, as flagged by test-check-module-imports.t...
r40405 > from mercurial import bundle2, error, extensions
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 > def checklock(orig, repo, *args, **kwargs):
Yuya Nishihara
py3: byte-stringify literals in extension in test-bundle2-exchange.t...
r38622 > if repo.svfs.lexists(b"lock"):
> raise error.Abort(b"Lock should not be taken")
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 > return orig(repo, *args, **kwargs)
> def extsetup(ui):
Yuya Nishihara
py3: byte-stringify literals in extension in test-bundle2-exchange.t...
r38622 > extensions.wrapfunction(bundle2, b'processbundle', checklock)
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 > EOF
$ hg init lazylock
$ cat >> lazylock/.hg/hgrc <<EOF
> [extensions]
> locktester=$TESTTMP/locktester.py
> EOF
$ hg clone -q ssh://user@dummy/lazylock lazylockclient
$ cd lazylockclient
$ touch a && hg ci -Aqm a
$ hg push
pushing to ssh://user@dummy/lazylock
searching for changes
Gregory Szorc
bundle2: attribute remote failures to remote (issue4788)...
r26829 remote: Lock should not be taken
abort: push failed on remote
Durham Goode
bundle2: allow lazily acquiring the lock...
r26566 [255]
$ cat >> ../lazylock/.hg/hgrc <<EOF
> [experimental]
> bundle2lazylocking=True
> EOF
$ hg push
pushing to ssh://user@dummy/lazylock
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
Gregory Szorc
wireproto: config options to disable bundle1...
r27246
$ cd ..
Servers can disable bundle1 for clone/pull operations
$ killdaemons.py
$ hg init bundle2onlyserver
$ cd bundle2onlyserver
$ cat > .hg/hgrc << EOF
> [server]
> bundle1.pull = false
> EOF
$ touch foo
$ hg -q commit -A -m initial
$ hg serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 requesting all changes
abort: remote error:
incompatible Mercurial client; bundle2 required
(see https://www.mercurial-scm.org/wiki/IncompatibleClient)
[255]
$ killdaemons.py
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 $ cd ..
bundle1 can still pull non-generaldelta repos when generaldelta bundle1 disabled
$ hg --config format.usegeneraldelta=false init notgdserver
$ cd notgdserver
$ cat > .hg/hgrc << EOF
> [server]
> bundle1gd.pull = false
> EOF
$ touch foo
$ hg -q commit -A -m initial
$ hg serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2-1
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 96ee1d7354c4
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ killdaemons.py
$ cd ../bundle2onlyserver
bundle1 pull can be disabled for generaldelta repos only
$ cat > .hg/hgrc << EOF
> [server]
> bundle1gd.pull = false
> EOF
$ hg serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 requesting all changes
abort: remote error:
incompatible Mercurial client; bundle2 required
(see https://www.mercurial-scm.org/wiki/IncompatibleClient)
[255]
$ killdaemons.py
Gregory Szorc
wireproto: config options to disable bundle1...
r27246
Verify the global server.bundle1 option works
Pierre-Yves David
bundle-tests: operate from outside a repository...
r30911 $ cd ..
$ cat > bundle2onlyserver/.hg/hgrc << EOF
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 > [server]
> bundle1 = false
> EOF
Saurabh Singh
serve: make tests compatible with chg...
r34484 $ hg serve -R bundle2onlyserver -p $HGPORT -d --pid-file=hg.pid
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 $ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT not-bundle2
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 requesting all changes
abort: remote error:
incompatible Mercurial client; bundle2 required
(see https://www.mercurial-scm.org/wiki/IncompatibleClient)
[255]
$ killdaemons.py
Pierre-Yves David
bundle1: fix bundle1-denied reporting for pull over ssh...
r30912 $ hg --config devel.legacy.exchange=bundle1 clone ssh://user@dummy/bundle2onlyserver not-bundle2-ssh
requesting all changes
adding changesets
remote: abort: incompatible Mercurial client; bundle2 required
remote: (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
transaction abort!
rollback completed
abort: stream ended unexpectedly (got 0 bytes, expected 4)
[255]
Pierre-Yves David
bundle-tests: operate from outside a repository...
r30911 $ cat > bundle2onlyserver/.hg/hgrc << EOF
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 > [server]
> bundle1gd = false
> EOF
Saurabh Singh
serve: make tests compatible with chg...
r34484 $ hg serve -R bundle2onlyserver -p $HGPORT -d --pid-file=hg.pid
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 $ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 requesting all changes
abort: remote error:
incompatible Mercurial client; bundle2 required
(see https://www.mercurial-scm.org/wiki/IncompatibleClient)
[255]
$ killdaemons.py
Pierre-Yves David
bundle-tests: operate from outside a repository...
r30911 $ cd notgdserver
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 $ cat > .hg/hgrc << EOF
> [server]
> bundle1gd = false
> EOF
$ hg serve -p $HGPORT -d --pid-file=hg.pid
$ cat hg.pid >> $DAEMON_PIDS
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 clone http://localhost:$HGPORT/ not-bundle2-2
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 96ee1d7354c4
Gregory Szorc
wireproto: support disabling bundle1 only if repo is generaldelta...
r27633 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ killdaemons.py
$ cd ../bundle2onlyserver
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 Verify bundle1 pushes can be disabled
$ cat > .hg/hgrc << EOF
> [server]
> bundle1.push = false
> [web]
> allow_push = *
> push_ssl = false
> EOF
$ hg serve -p $HGPORT -d --pid-file=hg.pid -E error.log
$ cat hg.pid >> $DAEMON_PIDS
$ cd ..
$ hg clone http://localhost:$HGPORT bundle2-only
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 96ee1d7354c4
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd bundle2-only
$ echo commit > foo
$ hg commit -m commit
Pierre-Yves David
tests: use 'legacy.exchange' option in 'test-bundle2-exchange.t'...
r29685 $ hg --config devel.legacy.exchange=bundle1 push
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 pushing to http://localhost:$HGPORT/
searching for changes
abort: remote error:
incompatible Mercurial client; bundle2 required
(see https://www.mercurial-scm.org/wiki/IncompatibleClient)
[255]
Pierre-Yves David
bundle1: fix bundle1-denied reporting for push over ssh...
r30909 (also check with ssh)
$ hg --config devel.legacy.exchange=bundle1 push ssh://user@dummy/bundle2onlyserver
pushing to ssh://user@dummy/bundle2onlyserver
searching for changes
remote: abort: incompatible Mercurial client; bundle2 required
Pierre-Yves David
bundle1: display server abort hint during unbundle...
r30910 remote: (see https://www.mercurial-scm.org/wiki/IncompatibleClient)
Pierre-Yves David
bundle1: fix bundle1-denied reporting for push over ssh...
r30909 [1]
Gregory Szorc
wireproto: config options to disable bundle1...
r27246 $ hg push
pushing to http://localhost:$HGPORT/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files