tests/test-pullbundle.t
changeset 4129 bc4e62a1cb82
parent 4128 4e5ec9ae682e
child 4130 a1f6b8211016
--- a/tests/test-pullbundle.t	Sun Sep 23 23:53:23 2018 +0200
+++ b/tests/test-pullbundle.t	Sun Sep 23 23:41:08 2018 +0200
@@ -2,7 +2,11 @@
 
   $ cat << EOF >> $HGRCPATH
   > [extensions]
+  > # evolve is providing the stable range code
+  > evolve=
   > pullbundle=
+  > [experimental]
+  > obshashrange.warm-cache=yes
   > EOF
 
 basic setup
@@ -10,16 +14,31 @@
   $ hg init server
   $ hg -R server debugbuilddag '.+898:branchpoint+352:mergepoint+267<branchpoint+145/mergepoint+467'
   $ hg init client
+  $ hg init client2
+  $ hg init client3
 
 simple initial pull
 -------------------
 
+  $ hg -R server log -G -T '{rev}:{node}\n' -r '0+1234+(::1234 and (merge() or branchpoint()))'
+  o  1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd
+  :
+  o  898:1388f909cd2b0685efd4e2ce076d198bce20922c
+  :
+  o  0:1ea73414a91b0920940797d8fc6a11e447f8ea1e
+  
+
   $ hg -R client pull server -r 1234 --debug --config devel.bundle2.debug=yes | grep -v 'add changeset'
   pulling from server
   query 1; heads
-  1235 changesets found
+  1024 changesets found
+  128 changesets found
+  64 changesets found
+  16 changesets found
+  2 changesets found
+  1 changesets found
   listing keys for "bookmarks"
-  bundle2-output-bundle: "HG20", 4 parts total
+  bundle2-output-bundle: "HG20", 9 parts total
   bundle2-output: start emission of HG20 stream
   bundle2-output: bundle parameter: 
   bundle2-output: start of parts
@@ -32,23 +51,660 @@
   bundle2-output: payload chunk size: 32768
   bundle2-output: payload chunk size: 32768
   bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 28424
+  bundle2-output: payload chunk size: 22368
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 1: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 23564
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 2: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 3: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 4: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 380
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 5: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
   bundle2-output: closing payload chunk
   bundle2-output: bundle part: "listkeys"
   bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
-  bundle2-output: part 1: "LISTKEYS"
+  bundle2-output: part 6: "LISTKEYS"
   bundle2-output: header chunk size: 35
   bundle2-output: closing payload chunk
   bundle2-output: bundle part: "phase-heads"
   bundle2-output-part: "phase-heads" 24 bytes payload
-  bundle2-output: part 2: "PHASE-HEADS"
+  bundle2-output: part 7: "PHASE-HEADS"
   bundle2-output: header chunk size: 18
   bundle2-output: payload chunk size: 24
   bundle2-output: closing payload chunk
   bundle2-output: bundle part: "cache:rev-branch-cache"
   bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
-  bundle2-output: part 3: "cache:rev-branch-cache"
+  bundle2-output: part 8: "cache:rev-branch-cache"
+  bundle2-output: header chunk size: 29
+  bundle2-output: payload chunk size: 24719
+  bundle2-output: closing payload chunk
+  bundle2-output: end of bundle
+  bundle2-input: start processing of HG20 stream
+  bundle2-input: reading bundle2 stream parameters
+  bundle2-input-bundle: with-transaction
+  bundle2-input: start extraction of bundle2 parts
+  bundle2-input: part header size: 44
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "0"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 22368
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1024 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 186208
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "1"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 23564
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 128 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 23564
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "2"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "3"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "4"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 380
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 2 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 380
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "5"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 196
+  bundle2-input: part header size: 35
+  bundle2-input: part type: "LISTKEYS"
+  bundle2-input: part id: "6"
+  bundle2-input: part parameters: 1
+  bundle2-input: found a handler for part listkeys
+  bundle2-input-part: "listkeys" (params: 1 mandatory) supported
+  bundle2-input: payload chunk size: 0
+  bundle2-input: part header size: 18
+  bundle2-input: part type: "PHASE-HEADS"
+  bundle2-input: part id: "7"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part phase-heads
+  bundle2-input-part: "phase-heads" supported
+  bundle2-input: payload chunk size: 24
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 24
+  bundle2-input: part header size: 29
+  bundle2-input: part type: "cache:rev-branch-cache"
+  bundle2-input: part id: "8"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part cache:rev-branch-cache
+  bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
+  bundle2-input: payload chunk size: 24719
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 24719
+  bundle2-input: part header size: 0
+  bundle2-input: end of bundle2 stream
+  bundle2-input-bundle: 8 parts total
+  checking for updated bookmarks
+  updating the branch cache
+  new changesets 1ea73414a91b:f864bc82f6a2
+  (run 'hg update' to get a working copy)
+
+pull the other missing entries (multiple heads pulled)
+------------------------------------------------------
+
+  $ hg -R server log -G -T '{rev}:{node}\n' -r '1234+head()+(only(head(), 1234) and (merge() or branchpoint()))'
+  o  2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1
+  :
+  o    1663:1710092b3ab17a6d2ecad664580991a608537749
+  |\
+  | ~
+  | o  1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf
+  |/
+  o  1250:d83212ecaa436c80d6113cf915ba35e2db787e79
+  :
+  o  1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd
+  |
+  ~
+  $ hg -R client pull server --debug --config devel.bundle2.debug=yes | grep -v 'add changeset'
+  pulling from server
+  query 1; heads
+  searching for changes
+  all local heads known remotely
+  16 changesets found
+  29 changesets found
+  256 changesets found
+  256 changesets found
+  64 changesets found
+  8 changesets found
+  1 changesets found
+  4 changesets found
+  8 changesets found
+  16 changesets found
+  128 changesets found
+  64 changesets found
+  32 changesets found
+  8 changesets found
+  4 changesets found
+  2 changesets found
+  listing keys for "bookmarks"
+  bundle2-output-bundle: "HG20", 19 parts total
+  bundle2-output: start emission of HG20 stream
+  bundle2-output: bundle parameter: 
+  bundle2-output: start of parts
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 0: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 1: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 2: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 14348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 3: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 14348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 4: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 5: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 6: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 7: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 8: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 9: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 10: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 23564
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 11: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 12: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5900
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 13: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 14: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 15: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 380
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "listkeys"
+  bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
+  bundle2-output: part 16: "LISTKEYS"
+  bundle2-output: header chunk size: 35
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "phase-heads"
+  bundle2-output-part: "phase-heads" 48 bytes payload
+  bundle2-output: part 17: "PHASE-HEADS"
+  bundle2-output: header chunk size: 18
+  bundle2-output: payload chunk size: 48
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "cache:rev-branch-cache"
+  bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
+  bundle2-output: part 18: "cache:rev-branch-cache"
+  bundle2-output: header chunk size: 29
+  bundle2-output: payload chunk size: 17939
+  bundle2-output: closing payload chunk
+  bundle2-output: end of bundle
+  bundle2-input: start processing of HG20 stream
+  bundle2-input: reading bundle2 stream parameters
+  bundle2-input-bundle: with-transaction
+  bundle2-input: start extraction of bundle2 parts
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "0"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "1"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 29 changesets with 0 changes to 0 files (+1 heads)
+  bundle2-input-part: total payload size 5348
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "2"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 14348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 256 changesets with 0 changes to 0 files (-1 heads)
+  bundle2-input-part: total payload size 47116
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "3"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 14348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 256 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 47116
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "4"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "5"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "6"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files (+1 heads)
+  bundle2-input-part: total payload size 196
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "7"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "8"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "9"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "10"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 23564
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 128 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 23564
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "11"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "12"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5900
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 32 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 5900
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "13"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "14"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "15"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 380
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 2 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 380
+  bundle2-input: part header size: 35
+  bundle2-input: part type: "LISTKEYS"
+  bundle2-input: part id: "16"
+  bundle2-input: part parameters: 1
+  bundle2-input: found a handler for part listkeys
+  bundle2-input-part: "listkeys" (params: 1 mandatory) supported
+  bundle2-input: payload chunk size: 0
+  bundle2-input: part header size: 18
+  bundle2-input: part type: "PHASE-HEADS"
+  bundle2-input: part id: "17"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part phase-heads
+  bundle2-input-part: "phase-heads" supported
+  bundle2-input: payload chunk size: 48
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 48
+  bundle2-input: part header size: 29
+  bundle2-input: part type: "cache:rev-branch-cache"
+  bundle2-input: part id: "18"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part cache:rev-branch-cache
+  bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
+  bundle2-input: payload chunk size: 17939
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 17939
+  bundle2-input: part header size: 0
+  bundle2-input: end of bundle2 stream
+  bundle2-input-bundle: 18 parts total
+  checking for updated bookmarks
+  updating the branch cache
+  new changesets 17185c1c22f1:1dded5aafa0f
+  (run 'hg heads' to see heads, 'hg merge' to merge)
+
+Same Pullin with a different client
+-----------------------------------
+  $ hg -R server log -G -T '{rev}:{node}\n' -r '0+1234+(::1234 and (merge() or branchpoint()))'
+  o  1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd
+  :
+  o  898:1388f909cd2b0685efd4e2ce076d198bce20922c
+  :
+  o  0:1ea73414a91b0920940797d8fc6a11e447f8ea1e
+  
+
+  $ hg -R client2 pull server -r 1234 --debug --config devel.bundle2.debug=yes --traceback| grep -v 'add changeset'
+  pulling from server
+  query 1; heads
+  1024 changesets found
+  128 changesets found
+  64 changesets found
+  16 changesets found
+  2 changesets found
+  1 changesets found
+  listing keys for "bookmarks"
+  bundle2-output-bundle: "HG20", 9 parts total
+  bundle2-output: start emission of HG20 stream
+  bundle2-output: bundle parameter: 
+  bundle2-output: start of parts
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 0: "CHANGEGROUP"
+  bundle2-output: header chunk size: 44
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 22368
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 1: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 23564
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 2: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 3: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 4: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 380
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 5: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "listkeys"
+  bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
+  bundle2-output: part 6: "LISTKEYS"
+  bundle2-output: header chunk size: 35
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "phase-heads"
+  bundle2-output-part: "phase-heads" 24 bytes payload
+  bundle2-output: part 7: "PHASE-HEADS"
+  bundle2-output: header chunk size: 18
+  bundle2-output: payload chunk size: 24
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "cache:rev-branch-cache"
+  bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
+  bundle2-output: part 8: "cache:rev-branch-cache"
   bundle2-output: header chunk size: 29
   bundle2-output: payload chunk size: 24719
   bundle2-output: closing payload chunk
@@ -69,23 +725,87 @@
   bundle2-input: payload chunk size: 32768
   bundle2-input: payload chunk size: 32768
   bundle2-input: payload chunk size: 32768
-  bundle2-input: payload chunk size: 32768
-  bundle2-input: payload chunk size: 28424
+  bundle2-input: payload chunk size: 22368
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1024 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 186208
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "1"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 23564
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 128 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 23564
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "2"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
   bundle2-input: payload chunk size: 0
   adding manifests
   adding file changes
-  added 1235 changesets with 0 changes to 0 files
-  bundle2-input-part: total payload size 225032
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "3"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "4"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 380
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 2 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 380
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "5"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 196
   bundle2-input: part header size: 35
   bundle2-input: part type: "LISTKEYS"
-  bundle2-input: part id: "1"
+  bundle2-input: part id: "6"
   bundle2-input: part parameters: 1
   bundle2-input: found a handler for part listkeys
   bundle2-input-part: "listkeys" (params: 1 mandatory) supported
   bundle2-input: payload chunk size: 0
   bundle2-input: part header size: 18
   bundle2-input: part type: "PHASE-HEADS"
-  bundle2-input: part id: "2"
+  bundle2-input: part id: "7"
   bundle2-input: part parameters: 0
   bundle2-input: found a handler for part phase-heads
   bundle2-input-part: "phase-heads" supported
@@ -94,7 +814,7 @@
   bundle2-input-part: total payload size 24
   bundle2-input: part header size: 29
   bundle2-input: part type: "cache:rev-branch-cache"
-  bundle2-input: part id: "3"
+  bundle2-input: part id: "8"
   bundle2-input: part parameters: 0
   bundle2-input: found a handler for part cache:rev-branch-cache
   bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
@@ -103,51 +823,164 @@
   bundle2-input-part: total payload size 24719
   bundle2-input: part header size: 0
   bundle2-input: end of bundle2 stream
-  bundle2-input-bundle: 3 parts total
+  bundle2-input-bundle: 8 parts total
   checking for updated bookmarks
   updating the branch cache
   new changesets 1ea73414a91b:f864bc82f6a2
   (run 'hg update' to get a working copy)
 
-pull the other missing entries (multiple heads pulled)
-------------------------------------------------------
+  $ hg -R server log -G -T '{rev}:{node}\n' -r '1234+head()+(only(head(), 1234) and (merge() or branchpoint()))'
+  o  2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1
+  :
+  o    1663:1710092b3ab17a6d2ecad664580991a608537749
+  |\
+  | ~
+  | o  1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf
+  |/
+  o  1250:d83212ecaa436c80d6113cf915ba35e2db787e79
+  :
+  o  1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd
+  |
+  ~
 
-  $ hg -R client pull server --debug --config devel.bundle2.debug=yes | grep -v 'add changeset'
+  $ hg -R client2 pull server --debug --config devel.bundle2.debug=yes | grep -v 'add changeset'
   pulling from server
   query 1; heads
   searching for changes
   all local heads known remotely
-  896 changesets found
+  16 changesets found
+  29 changesets found
+  256 changesets found
+  256 changesets found
+  64 changesets found
+  8 changesets found
+  1 changesets found
+  4 changesets found
+  8 changesets found
+  16 changesets found
+  128 changesets found
+  64 changesets found
+  32 changesets found
+  8 changesets found
+  4 changesets found
+  2 changesets found
   listing keys for "bookmarks"
-  bundle2-output-bundle: "HG20", 4 parts total
+  bundle2-output-bundle: "HG20", 19 parts total
   bundle2-output: start emission of HG20 stream
   bundle2-output: bundle parameter: 
   bundle2-output: start of parts
   bundle2-output: bundle part: "changegroup"
   bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
   bundle2-output: part 0: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 1: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 2: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 14348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 3: "CHANGEGROUP"
   bundle2-output: header chunk size: 43
   bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 32768
-  bundle2-output: payload chunk size: 1036
+  bundle2-output: payload chunk size: 14348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 4: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 5: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 6: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 7: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 8: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 9: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 10: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 23564
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 11: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 12: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5900
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 13: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 14: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 15: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 380
   bundle2-output: closing payload chunk
   bundle2-output: bundle part: "listkeys"
   bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
-  bundle2-output: part 1: "LISTKEYS"
+  bundle2-output: part 16: "LISTKEYS"
   bundle2-output: header chunk size: 35
   bundle2-output: closing payload chunk
   bundle2-output: bundle part: "phase-heads"
   bundle2-output-part: "phase-heads" 48 bytes payload
-  bundle2-output: part 2: "PHASE-HEADS"
+  bundle2-output: part 17: "PHASE-HEADS"
   bundle2-output: header chunk size: 18
   bundle2-output: payload chunk size: 48
   bundle2-output: closing payload chunk
   bundle2-output: bundle part: "cache:rev-branch-cache"
   bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
-  bundle2-output: part 3: "cache:rev-branch-cache"
+  bundle2-output: part 18: "cache:rev-branch-cache"
   bundle2-output: header chunk size: 29
   bundle2-output: payload chunk size: 17939
   bundle2-output: closing payload chunk
@@ -156,8 +989,324 @@
   bundle2-input: reading bundle2 stream parameters
   bundle2-input-bundle: with-transaction
   bundle2-input: start extraction of bundle2 parts
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "0"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "1"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 29 changesets with 0 changes to 0 files (+1 heads)
+  bundle2-input-part: total payload size 5348
   bundle2-input: part header size: 43
   bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "2"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 14348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 256 changesets with 0 changes to 0 files (-1 heads)
+  bundle2-input-part: total payload size 47116
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "3"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 14348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 256 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 47116
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "4"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "5"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "6"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files (+1 heads)
+  bundle2-input-part: total payload size 196
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "7"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "8"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "9"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "10"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 23564
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 128 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 23564
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "11"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "12"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5900
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 32 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 5900
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "13"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "14"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "15"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 380
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 2 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 380
+  bundle2-input: part header size: 35
+  bundle2-input: part type: "LISTKEYS"
+  bundle2-input: part id: "16"
+  bundle2-input: part parameters: 1
+  bundle2-input: found a handler for part listkeys
+  bundle2-input-part: "listkeys" (params: 1 mandatory) supported
+  bundle2-input: payload chunk size: 0
+  bundle2-input: part header size: 18
+  bundle2-input: part type: "PHASE-HEADS"
+  bundle2-input: part id: "17"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part phase-heads
+  bundle2-input-part: "phase-heads" supported
+  bundle2-input: payload chunk size: 48
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 48
+  bundle2-input: part header size: 29
+  bundle2-input: part type: "cache:rev-branch-cache"
+  bundle2-input: part id: "18"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part cache:rev-branch-cache
+  bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
+  bundle2-input: payload chunk size: 17939
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 17939
+  bundle2-input: part header size: 0
+  bundle2-input: end of bundle2 stream
+  bundle2-input-bundle: 18 parts total
+  checking for updated bookmarks
+  updating the branch cache
+  new changesets 17185c1c22f1:1dded5aafa0f
+  (run 'hg heads' to see heads, 'hg merge' to merge)
+
+different pull with a different client
+--------------------------------------
+
+  $ hg -R server log -G -T '{rev}:{node}\n' -r '87232049c8d1+0+1789+(::1789 and (merge() or branchpoint()))'
+  o  2085:87232049c8d1f413105bf813b6bfc21da3e26a4f
+  :
+  o  1789:44e80141ad530a2aa085e9bd9b5311b57eff72ff
+  :
+  o    1663:1710092b3ab17a6d2ecad664580991a608537749
+  |\
+  o :  1250:d83212ecaa436c80d6113cf915ba35e2db787e79
+  :/
+  o  898:1388f909cd2b0685efd4e2ce076d198bce20922c
+  :
+  o  0:1ea73414a91b0920940797d8fc6a11e447f8ea1e
+  
+
+  $ hg -R client3 pull server -r 1789 --debug --config devel.bundle2.debug=yes | grep -v 'add changeset'
+  pulling from server
+  query 1; heads
+  1024 changesets found
+  227 changesets found
+  29 changesets found
+  128 changesets found
+  64 changesets found
+  32 changesets found
+  16 changesets found
+  2 changesets found
+  1 changesets found
+  listing keys for "bookmarks"
+  bundle2-output-bundle: "HG20", 12 parts total
+  bundle2-output: start emission of HG20 stream
+  bundle2-output: bundle parameter: 
+  bundle2-output: start of parts
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 0: "CHANGEGROUP"
+  bundle2-output: header chunk size: 44
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 22368
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 1: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 9012
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 2: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 3: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 23564
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 4: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-input: start processing of HG20 stream
+  bundle2-input: reading bundle2 stream parameters
+  bundle2-input-bundle: with-transaction
+  bundle2-input: start extraction of bundle2 parts
+  bundle2-input: part header size: 44
+  bundle2-input: part type: "CHANGEGROUP"
   bundle2-input: part id: "0"
   bundle2-input: part parameters: 2
   bundle2-input: found a handler for part changegroup
@@ -168,22 +1317,568 @@
   bundle2-input: payload chunk size: 32768
   bundle2-input: payload chunk size: 32768
   bundle2-input: payload chunk size: 32768
-  bundle2-input: payload chunk size: 1036
+  bundle2-input: payload chunk size: 22368
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1024 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 186208
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "1"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 9012
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 227 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 41780
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "2"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 29 changesets with 0 changes to 0 files (+1 heads)
+  bundle2-input-part: total payload size 5348
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "3"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 23564
   bundle2-input: payload chunk size: 0
   adding manifests
   adding file changes
-  added 896 changesets with 0 changes to 0 files (+1 heads)
-  bundle2-input-part: total payload size 164876
+  added 128 changesets with 0 changes to 0 files (-1 heads)
+  bundle2-input-part: total payload size 23564
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "4"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 5: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5900
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 6: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 7: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 380
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 8: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "listkeys"
+  bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
+  bundle2-output: part 9: "LISTKEYS"
+  bundle2-output: header chunk size: 35
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "phase-heads"
+  bundle2-output-part: "phase-heads" 24 bytes payload
+  bundle2-output: part 10: "PHASE-HEADS"
+  bundle2-output: header chunk size: 18
+  bundle2-output: payload chunk size: 24
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "cache:rev-branch-cache"
+  bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
+  bundle2-output: part 11: "cache:rev-branch-cache"
+  bundle2-output: header chunk size: 29
+  bundle2-output: payload chunk size: 30479
+  bundle2-output: closing payload chunk
+  bundle2-output: end of bundle
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "5"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5900
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 32 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 5900
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "6"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "7"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 380
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 2 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 380
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "8"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 196
   bundle2-input: part header size: 35
   bundle2-input: part type: "LISTKEYS"
-  bundle2-input: part id: "1"
+  bundle2-input: part id: "9"
   bundle2-input: part parameters: 1
   bundle2-input: found a handler for part listkeys
   bundle2-input-part: "listkeys" (params: 1 mandatory) supported
   bundle2-input: payload chunk size: 0
   bundle2-input: part header size: 18
   bundle2-input: part type: "PHASE-HEADS"
+  bundle2-input: part id: "10"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part phase-heads
+  bundle2-input-part: "phase-heads" supported
+  bundle2-input: payload chunk size: 24
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 24
+  bundle2-input: part header size: 29
+  bundle2-input: part type: "cache:rev-branch-cache"
+  bundle2-input: part id: "11"
+  bundle2-input: part parameters: 0
+  bundle2-input: found a handler for part cache:rev-branch-cache
+  bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
+  bundle2-input: payload chunk size: 30479
+  bundle2-input: payload chunk size: 0
+  bundle2-input-part: total payload size 30479
+  bundle2-input: part header size: 0
+  bundle2-input: end of bundle2 stream
+  bundle2-input-bundle: 11 parts total
+  checking for updated bookmarks
+  updating the branch cache
+  new changesets 1ea73414a91b:44e80141ad53
+  (run 'hg update' to get a working copy)
+
+  $ hg -R server log -G -T '{rev}:{node}\n' -r '1789+head()+parents(roots(only(head(), 1789)))+(only(head(), 1789) and (merge() or branchpoint()))'
+  o  2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1
+  :
+  o  1789:44e80141ad530a2aa085e9bd9b5311b57eff72ff
+  :
+  : o  1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf
+  :/
+  o  1250:d83212ecaa436c80d6113cf915ba35e2db787e79
+  |
+  ~
+
+  $ hg -R client3 pull server --debug --config devel.bundle2.debug=yes | grep -v 'add changeset'
+  pulling from server
+  query 1; heads
+  searching for changes
+  all local heads known remotely
+  1 changesets found
+  4 changesets found
+  8 changesets found
+  256 changesets found
+  64 changesets found
+  8 changesets found
+  1 changesets found
+  4 changesets found
+  8 changesets found
+  16 changesets found
+  128 changesets found
+  64 changesets found
+  32 changesets found
+  8 changesets found
+  4 changesets found
+  2 changesets found
+  listing keys for "bookmarks"
+  bundle2-output-bundle: "HG20", 19 parts total
+  bundle2-output: start emission of HG20 stream
+  bundle2-output: bundle parameter: 
+  bundle2-output: start of parts
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 0: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 1: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 2: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 3: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 32768
+  bundle2-output: payload chunk size: 14348
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 4: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 5: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 6: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 196
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 7: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 8: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 9: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 2956
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 10: "CHANGEGROUP"
+  bundle2-output: header chunk size: 43
+  bundle2-output: payload chunk size: 23564
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 11: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 11788
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 12: "CHANGEGROUP"
+  bundle2-output: header chunk size: 42
+  bundle2-output: payload chunk size: 5900
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 13: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 1484
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 14: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 748
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "changegroup"
+  bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload
+  bundle2-output: part 15: "CHANGEGROUP"
+  bundle2-output: header chunk size: 41
+  bundle2-output: payload chunk size: 380
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "listkeys"
+  bundle2-output-part: "listkeys" (params: 1 mandatory) empty payload
+  bundle2-output: part 16: "LISTKEYS"
+  bundle2-output: header chunk size: 35
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "phase-heads"
+  bundle2-output-part: "phase-heads" 48 bytes payload
+  bundle2-output: part 17: "PHASE-HEADS"
+  bundle2-output: header chunk size: 18
+  bundle2-output: payload chunk size: 48
+  bundle2-output: closing payload chunk
+  bundle2-output: bundle part: "cache:rev-branch-cache"
+  bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload
+  bundle2-output: part 18: "cache:rev-branch-cache"
+  bundle2-output: header chunk size: 29
+  bundle2-output: payload chunk size: 12179
+  bundle2-output: closing payload chunk
+  bundle2-output: end of bundle
+  bundle2-input: start processing of HG20 stream
+  bundle2-input: reading bundle2 stream parameters
+  bundle2-input-bundle: with-transaction
+  bundle2-input: start extraction of bundle2 parts
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "0"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 196
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "1"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
   bundle2-input: part id: "2"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "3"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 32768
+  bundle2-input: payload chunk size: 14348
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 256 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 47116
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "4"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "5"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "6"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 196
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 1 changesets with 0 changes to 0 files (+1 heads)
+  bundle2-input-part: total payload size 196
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "7"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "8"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "9"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 2956
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 16 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 2956
+  bundle2-input: part header size: 43
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "10"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 23564
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 128 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 23564
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "11"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 11788
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 64 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 11788
+  bundle2-input: part header size: 42
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "12"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 5900
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 32 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 5900
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "13"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 1484
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 8 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 1484
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "14"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 748
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 4 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 748
+  bundle2-input: part header size: 41
+  bundle2-input: part type: "CHANGEGROUP"
+  bundle2-input: part id: "15"
+  bundle2-input: part parameters: 2
+  bundle2-input: found a handler for part changegroup
+  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
+  adding changesets
+  bundle2-input: payload chunk size: 380
+  bundle2-input: payload chunk size: 0
+  adding manifests
+  adding file changes
+  added 2 changesets with 0 changes to 0 files
+  bundle2-input-part: total payload size 380
+  bundle2-input: part header size: 35
+  bundle2-input: part type: "LISTKEYS"
+  bundle2-input: part id: "16"
+  bundle2-input: part parameters: 1
+  bundle2-input: found a handler for part listkeys
+  bundle2-input-part: "listkeys" (params: 1 mandatory) supported
+  bundle2-input: payload chunk size: 0
+  bundle2-input: part header size: 18
+  bundle2-input: part type: "PHASE-HEADS"
+  bundle2-input: part id: "17"
   bundle2-input: part parameters: 0
   bundle2-input: found a handler for part phase-heads
   bundle2-input-part: "phase-heads" supported
@@ -192,17 +1887,17 @@
   bundle2-input-part: total payload size 48
   bundle2-input: part header size: 29
   bundle2-input: part type: "cache:rev-branch-cache"
-  bundle2-input: part id: "3"
+  bundle2-input: part id: "18"
   bundle2-input: part parameters: 0
   bundle2-input: found a handler for part cache:rev-branch-cache
   bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
-  bundle2-input: payload chunk size: 17939
+  bundle2-input: payload chunk size: 12179
   bundle2-input: payload chunk size: 0
-  bundle2-input-part: total payload size 17939
+  bundle2-input-part: total payload size 12179
   bundle2-input: part header size: 0
   bundle2-input: end of bundle2 stream
-  bundle2-input-bundle: 3 parts total
+  bundle2-input-bundle: 18 parts total
   checking for updated bookmarks
   updating the branch cache
-  new changesets 17185c1c22f1:0f376356904f
+  new changesets c232505f58fd:1dded5aafa0f
   (run 'hg heads' to see heads, 'hg merge' to merge)