obshistory: add _predecessorsverb() similar to _successorsetverb()
$."$TESTDIR/testlib/pythonpath.sh"$cat<<EOF>>$HGRCPATH>[extensions]>#evolveisprovidingthestablerangecode>evolve=>pullbundle=>[experimental]>obshashrange.warm-cache=yes>EOFbasicsetup$hginitserver$hg-Rserverdebugbuilddag'.+898:branchpoint+352:mergepoint+267<branchpoint+145/mergepoint+467'$hginitclient$hginitclient2$hginitclient3$hginitclient4simpleinitialpull-------------------$hg-Rserverlog-G-T'{rev}:{node}\n'-r'0+1234+(::1234 and (merge() or branchpoint()))'o1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd:o898:1388f909cd2b0685efd4e2ce076d198bce20922c:o0:1ea73414a91b0920940797d8fc6a11e447f8ea1e$hg-Rclientpullserver-r1234--debug--configdevel.bundle2.debug=yes|grep-v'add changeset'pullingfromserverlistingkeysfor"bookmarks"query1;headspullbundle-cache:"missing"setslicedinto6subrangesin*.*seconds(glob)1024changesetsfound128changesetsfound64changesetsfound16changesetsfound2changesetsfound1changesetsfoundbundle2-output-bundle:"HG20",8partstotalbundle2-output:startemissionofHG20streambundle2-output:bundleparameter:bundle2-output:startofpartsbundle2-output:bundlepart:"changegroup"bundle2-output-part:"changegroup"(params:1mandatory1advisory)streamedpayloadbundle2-output:part0:"CHANGEGROUP"bundle2-output:headerchunksize:44bundle2-output:payloadchunksize:32768bundle2-output:payloadchunksize:32768bundle2-output:payloadchunksize:32768bundle2-output:payloadchunksize:32768bundle2-output:payloadchunksize:32768bundle2-output:payloadchunksize:22368bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"changegroup"bundle2-output-part:"changegroup"(params:1mandatory1advisory)streamedpayloadbundle2-output:part1:"CHANGEGROUP"bundle2-output:headerchunksize:43bundle2-output:payloadchunksize:23564bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"changegroup"bundle2-output-part:"changegroup"(params:1mandatory1advisory)streamedpayloadbundle2-output:part2:"CHANGEGROUP"bundle2-output:headerchunksize:42bundle2-output:payloadchunksize:11788bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"changegroup"bundle2-output-part:"changegroup"(params:1mandatory1advisory)streamedpayloadbundle2-output:part3:"CHANGEGROUP"bundle2-output:headerchunksize:42bundle2-output:payloadchunksize:2956bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"changegroup"bundle2-output-part:"changegroup"(params:1mandatory1advisory)streamedpayloadbundle2-output:part4:"CHANGEGROUP"bundle2-output:headerchunksize:41bundle2-output:payloadchunksize:380bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"changegroup"bundle2-output-part:"changegroup"(params:1mandatory1advisory)streamedpayloadbundle2-output:part5:"CHANGEGROUP"bundle2-output:headerchunksize:41bundle2-output:payloadchunksize:196bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"phase-heads"bundle2-output-part:"phase-heads"24bytespayloadbundle2-output:part6:"PHASE-HEADS"bundle2-output:headerchunksize:18bundle2-output:payloadchunksize:24bundle2-output:closingpayloadchunkbundle2-output:bundlepart:"cache:rev-branch-cache"bundle2-output-part:"cache:rev-branch-cache"(advisory)streamedpayloadbundle2-output:part7:"cache:rev-branch-cache"bundle2-output:headerchunksize:29bundle2-output:payloadchunksize:24719bundle2-output:closingpayloadchunkbundle2-output:endofbundlebundle2-input:startprocessingofHG20streambundle2-input:readingbundle2streamparametersbundle2-input-bundle:with-transactionbundle2-input:startextractionofbundle2partsbundle2-input:partheadersize:44bundle2-input:parttype:"CHANGEGROUP"bundle2-input:partid:"0"bundle2-input:partparameters:2bundle2-input:foundahandlerforpartchangegroupbundle2-input-part:"changegroup"(params:1mandatory1advisory)supportedaddingchangesetsbundle2-input:payloadchunksize:32768bundle2-input:payloadchunksize:32768bundle2-input:payloadchunksize:32768bundle2-input:payloadchunksize:32768bundle2-input:payloadchunksize:32768bundle2-input:payloadchunksize:22368bundle2-input:payloadchunksize:0addingmanifestsaddingfilechangesbundle2-input-part:totalpayloadsize186208bundle2-input:partheadersize:43bundle2-input:parttype:"CHANGEGROUP"bundle2-input:partid:"1"bundle2-input:partparameters:2bundle2-input:foundahandlerforpartchangegroupbundle2-input-part:"changegroup"(params:1mandatory1advisory)supportedaddingchangesetsbundle2-input:payloadchunksize:23564bundle2-input:payloadchunksize:0addingmanifestsaddingfilechangesbundle2-input-part:totalpayloadsize23564bundle2-input:partheadersize:42bundle2-input:parttype:"CHANGEGROUP"bundle2-input:partid:"2"bundle2-input:partparameters:2bundle2-input:foundahandlerforpartchangegroupbundle2-input-part:"changegroup"(params:1mandatory1advisory)supportedaddingchangesetsbundle2-input:payloadchunksize:11788bundle2-input:payloadchunksize:0addingmanifestsaddingfilechangesbundle2-input-part:totalpayloadsize11788bundle2-input:partheadersize:42bundle2-input:parttype:"CHANGEGROUP"bundle2-input:partid:"3"bundle2-input:partparameters:2bundle2-input:foundahandlerforpartchangegroupbundle2-input-part:"changegroup"(params:1mandatory1advisory)supportedaddingchangesetsbundle2-input:payloadchunksize:2956bundle2-input:payloadchunksize:0addingmanifestsaddingfilechangesbundle2-input-part:totalpayloadsize2956bundle2-input:partheadersize:41bundle2-input:parttype:"CHANGEGROUP"bundle2-input:partid:"4"bundle2-input:partparameters:2bundle2-input:foundahandlerforpartchangegroupbundle2-input-part:"changegroup"(params:1mandatory1advisory)supportedaddingchangesetsbundle2-input:payloadchunksize:380bundle2-input:payloadchunksize:0addingmanifestsaddingfilechangesbundle2-input-part:totalpayloadsize380bundle2-input:partheadersize:41bundle2-input:parttype:"CHANGEGROUP"bundle2-input:partid:"5"bundle2-input:partparameters:2bundle2-input:foundahandlerforpartchangegroupbundle2-input-part:"changegroup"(params:1mandatory1advisory)supportedaddingchangesetsbundle2-input:payloadchunksize:196bundle2-input:payloadchunksize:0addingmanifestsaddingfilechangesbundle2-input-part:totalpayloadsize196bundle2-input:partheadersize:18bundle2-input:parttype:"PHASE-HEADS"bundle2-input:partid:"6"bundle2-input:partparameters:0bundle2-input:foundahandlerforpartphase-headsbundle2-input-part:"phase-heads"supportedbundle2-input:payloadchunksize:24bundle2-input:payloadchunksize:0bundle2-input-part:totalpayloadsize24bundle2-input:partheadersize:29bundle2-input:parttype:"cache:rev-branch-cache"bundle2-input:partid:"7"bundle2-input:partparameters:0bundle2-input:foundahandlerforpartcache:rev-branch-cachebundle2-input-part:"cache:rev-branch-cache"(advisory)supportedbundle2-input:payloadchunksize:24719bundle2-input:payloadchunksize:0bundle2-input-part:totalpayloadsize24719bundle2-input:partheadersize:0bundle2-input:endofbundle2streambundle2-input-bundle:8partstotalcheckingforupdatedbookmarksupdatingthebranchcacheadded1235changesetswith0changesto0filesnewchangesets1ea73414a91b:f864bc82f6a2(run'hg update'togetaworkingcopy)$toucholdbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundles---oldbundles*(glob)+++newbundles*(glob)@@-0,0+1,6@@+02-467b6e370e816747e27de0d0b9237f4090a33656-0000001152skip-0000000064size.hg+02-540f762640ee62ca597ece26af725e6357e82805-0000000000skip-0000001024size.hg+02-63ded94ceab180ac2fa13e1f0beeb4d2265998a3-0000001232skip-0000000002size.hg+02-7f3a79522d6e904d52aea07c71e6cb612667e8f4-0000001216skip-0000000016size.hg+02-ee2deecf044fa5583f66188c9177b0f13332adc2-0000001024skip-0000000128size.hg+02-f864bc82f6a2f2ecb49b83722e0895f9d657b0dd-0000001234skip-0000000001size.hg[1]pulltheothermissingentries(multipleheadspulled)------------------------------------------------------$hg-Rserverlog-G-T'{rev}:{node}\n'-r'1234+head()+(only(head(), 1234) and (merge() or branchpoint()))'o2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1:o1663:1710092b3ab17a6d2ecad664580991a608537749|\|~|o1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf|/o1250:d83212ecaa436c80d6113cf915ba35e2db787e79:o1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd|~$hg-Rclientpullserver--verbosepullingfromserversearchingforchangesalllocalchangesetsknownremotelypullbundle-cache:"missing"setslicedinto18subrangesin*.*seconds(glob)1changesetsfound4changesetsfound8changesetsfound32changesetsfound128changesetsfound64changesetsfound32changesetsfound8changesetsfound4changesetsfound2changesetsfound1changesetsfound4changesetsfound8changesetsfound16changesetsfound256changesetsfound256changesetsfound64changesetsfound8changesetsfounduncompressedsizeofbundlecontent:188(changelog)4(manifests)uncompressedsizeofbundlecontent:740(changelog)4(manifests)uncompressedsizeofbundlecontent:1476(changelog)4(manifests)uncompressedsizeofbundlecontent:5892(changelog)4(manifests)uncompressedsizeofbundlecontent:23556(changelog)4(manifests)uncompressedsizeofbundlecontent:11780(changelog)4(manifests)uncompressedsizeofbundlecontent:5892(changelog)4(manifests)uncompressedsizeofbundlecontent:1476(changelog)4(manifests)uncompressedsizeofbundlecontent:740(changelog)4(manifests)uncompressedsizeofbundlecontent:372(changelog)4(manifests)uncompressedsizeofbundlecontent:188(changelog)4(manifests)uncompressedsizeofbundlecontent:740(changelog)4(manifests)uncompressedsizeofbundlecontent:1476(changelog)4(manifests)uncompressedsizeofbundlecontent:2948(changelog)4(manifests)uncompressedsizeofbundlecontent:47108(changelog)4(manifests)uncompressedsizeofbundlecontent:47108(changelog)4(manifests)uncompressedsizeofbundlecontent:11780(changelog)4(manifests)uncompressedsizeofbundlecontent:1476(changelog)4(manifests)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded896changesetswith0changesto0files(+1heads)newchangesets17185c1c22f1:0f376356904f(run'hg heads'toseeheads,'hg merge'tomerge)$mvnewbundlesoldbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundles---oldbundles*(glob)+++newbundles*(glob)@@-1,6+1,24@@+02-0f376356904fc8c1c6ceaac27990f2fd79b1f8c1-0000001856skip-0000000008size.hg+02-17185c1c22f1266b084daf7cfb07b6ebbfbc65ab-0000001235skip-0000000001size.hg+02-1dded5aafa0f8d548f6357cc2f8882dcc4489fbf-0000001516skip-0000000002size.hg+02-2dc4f1ab9029719714b8e0dde8e3725a5bb28472-0000001408skip-0000000064size.hg+02-2f0e261a08964bc1c607c0eda4978364c22a9b94-0000001504skip-0000000008size.hg02-467b6e370e816747e27de0d0b9237f4090a33656-0000001152skip-0000000064size.hg+02-484c46df3e41f371efd0ff74fa5221657527213f-0000001240skip-0000000008size.hg+02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001248skip-0000000032size.hg02-540f762640ee62ca597ece26af725e6357e82805-0000000000skip-0000001024size.hg02-63ded94ceab180ac2fa13e1f0beeb4d2265998a3-0000001232skip-0000000002size.hg+02-694ef7e5b2984f1ec66c3d960799f4ff2459672c-0000001236skip-0000000004size.hg02-7f3a79522d6e904d52aea07c71e6cb612667e8f4-0000001216skip-0000000016size.hg+02-89fab188d2ce3c4cde6be031f2fc5b9b4ff248e3-0000000900skip-0000000004size.hg+02-97ede4832194ed56894374f2a1cc7a0022b486da-0000000904skip-0000000008size.hg+02-b2d350c94c26edbb783aaa21fc24f1fc65c30e74-0000001536skip-0000000256size.hg+02-bbd293bd171fd5b711d428db46940a72eca7a40f-0000001280skip-0000000128size.hg+02-c72277ff25807eb444fa48a60afb434d78c21f2f-0000000899skip-0000000001size.hg+02-da87a81c5310760f414a933e6550b7e8e60cf241-0000001792skip-0000000064size.hg+02-dba2fddbf3c28198659046674a512afd616a1519-0000001472skip-0000000032size.hg+02-e469a7aa5cce57653b6b02ff46c80b2d94d62629-0000000912skip-0000000016size.hg+02-e74670ea99533967c5d90da3ddbc0318cc1fd502-0000001280skip-0000000256size.hg02-ee2deecf044fa5583f66188c9177b0f13332adc2-0000001024skip-0000000128size.hg02-f864bc82f6a2f2ecb49b83722e0895f9d657b0dd-0000001234skip-0000000001size.hg+02-fb6c210a224903e81e5a8d2ee099cb0c9526ba8c-0000001512skip-0000000004size.hg[1]SamePullinwithadifferentclient-----------------------------------$hg-Rserverlog-G-T'{rev}:{node}\n'-r'0+1234+(::1234 and (merge() or branchpoint()))'o1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd:o898:1388f909cd2b0685efd4e2ce076d198bce20922c:o0:1ea73414a91b0920940797d8fc6a11e447f8ea1e$hg-Rclient2pullserver-r1234--verbosepullingfromserverpullbundle-cache:"missing"setslicedinto6subrangesin*.*seconds(glob)1024changesetsfoundincaches128changesetsfoundincaches64changesetsfoundincaches16changesetsfoundincaches2changesetsfoundincaches1changesetsfoundincachesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded1235changesetswith0changesto0filesnewchangesets1ea73414a91b:f864bc82f6a2(run'hg update'togetaworkingcopy)$mvnewbundlesoldbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundles$hg-Rserverlog-G-T'{rev}:{node}\n'-r'1234+head()+(only(head(), 1234) and (merge() or branchpoint()))'o2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1:o1663:1710092b3ab17a6d2ecad664580991a608537749|\|~|o1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf|/o1250:d83212ecaa436c80d6113cf915ba35e2db787e79:o1234:f864bc82f6a2f2ecb49b83722e0895f9d657b0dd|~$hg-Rclient2pullserver--verbosepullingfromserversearchingforchangesalllocalchangesetsknownremotelypullbundle-cache:"missing"setslicedinto18subrangesin*.*seconds(glob)1changesetsfoundincaches4changesetsfoundincaches8changesetsfoundincaches32changesetsfoundincaches128changesetsfoundincaches64changesetsfoundincaches32changesetsfoundincaches8changesetsfoundincaches4changesetsfoundincaches2changesetsfoundincaches1changesetsfoundincaches4changesetsfoundincaches8changesetsfoundincaches16changesetsfoundincaches256changesetsfoundincaches256changesetsfoundincaches64changesetsfoundincaches8changesetsfoundincachesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded896changesetswith0changesto0files(+1heads)newchangesets17185c1c22f1:0f376356904f(run'hg heads'toseeheads,'hg merge'tomerge)$mvnewbundlesoldbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundlesdifferentpullwithadifferentclient--------------------------------------$hg-Rserverlog-G-T'{rev}:{node}\n'-r'87232049c8d1+0+1789+(::1789 and (merge() or branchpoint()))'o2085:87232049c8d1f413105bf813b6bfc21da3e26a4f:o1789:44e80141ad530a2aa085e9bd9b5311b57eff72ff:o1663:1710092b3ab17a6d2ecad664580991a608537749|\o:1250:d83212ecaa436c80d6113cf915ba35e2db787e79:/o898:1388f909cd2b0685efd4e2ce076d198bce20922c:o0:1ea73414a91b0920940797d8fc6a11e447f8ea1e$hg-Rclient3pullserver-r1789--verbosepullingfromserverpullbundle-cache:"missing"setslicedinto9subrangesin*.*seconds(glob)1024changesetsfoundincaches227changesetsfound29changesetsfound128changesetsfound64changesetsfound32changesetsfound16changesetsfound2changesetsfound1changesetsfounduncompressedsizeofbundlecontent:41772(changelog)4(manifests)uncompressedsizeofbundlecontent:5340(changelog)4(manifests)uncompressedsizeofbundlecontent:23556(changelog)4(manifests)uncompressedsizeofbundlecontent:11780(changelog)4(manifests)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsuncompressedsizeofbundlecontent:5892(changelog)4(manifests)uncompressedsizeofbundlecontent:2948(changelog)4(manifests)uncompressedsizeofbundlecontent:372(changelog)4(manifests)uncompressedsizeofbundlecontent:188(changelog)4(manifests)addingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded1523changesetswith0changesto0filesnewchangesets1ea73414a91b:44e80141ad53(run'hg update'togetaworkingcopy)$mvnewbundlesoldbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundles---oldbundles*(glob)+++newbundles*(glob)@@-3,20+3,28@@02-1dded5aafa0f8d548f6357cc2f8882dcc4489fbf-0000001516skip-0000000002size.hg02-2dc4f1ab9029719714b8e0dde8e3725a5bb28472-0000001408skip-0000000064size.hg02-2f0e261a08964bc1c607c0eda4978364c22a9b94-0000001504skip-0000000008size.hg+02-44e80141ad530a2aa085e9bd9b5311b57eff72ff-0000001522skip-0000000001size.hg02-467b6e370e816747e27de0d0b9237f4090a33656-0000001152skip-0000000064size.hg02-484c46df3e41f371efd0ff74fa5221657527213f-0000001240skip-0000000008size.hg02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001248skip-0000000032size.hg02-540f762640ee62ca597ece26af725e6357e82805-0000000000skip-0000001024size.hg+02-59e60b258b18cde1e931cf30ce4ae62b49e37abd-0000001520skip-0000000002size.hg02-63ded94ceab180ac2fa13e1f0beeb4d2265998a3-0000001232skip-0000000002size.hg02-694ef7e5b2984f1ec66c3d960799f4ff2459672c-0000001236skip-0000000004size.hg+02-7a55a4d5ce324910842c893b56173cf2a847cb9d-0000001472skip-0000000032size.hg02-7f3a79522d6e904d52aea07c71e6cb612667e8f4-0000001216skip-0000000016size.hg02-89fab188d2ce3c4cde6be031f2fc5b9b4ff248e3-0000000900skip-0000000004size.hg02-97ede4832194ed56894374f2a1cc7a0022b486da-0000000904skip-0000000008size.hg+02-a4ab7df9d74053fb819c8a1c6a48ad605cc05f8a-0000001504skip-0000000016size.hg02-b2d350c94c26edbb783aaa21fc24f1fc65c30e74-0000001536skip-0000000256size.hg02-bbd293bd171fd5b711d428db46940a72eca7a40f-0000001280skip-0000000128size.hg+02-c12927fef661d2463043347101b90067c2961333-0000001280skip-0000000128size.hg02-c72277ff25807eb444fa48a60afb434d78c21f2f-0000000899skip-0000000001size.hg+02-d83212ecaa436c80d6113cf915ba35e2db787e79-0000001024skip-0000000227size.hg02-da87a81c5310760f414a933e6550b7e8e60cf241-0000001792skip-0000000064size.hg02-dba2fddbf3c28198659046674a512afd616a1519-0000001472skip-0000000032size.hg+02-dc714c3a5d080165292ba99b097567d0b95e5756-0000001408skip-0000000064size.hg+02-e469a7aa5cce57653b6b02ff46c80b2d94d62629-0000000899skip-0000000029size.hg02-e469a7aa5cce57653b6b02ff46c80b2d94d62629-0000000912skip-0000000016size.hg02-e74670ea99533967c5d90da3ddbc0318cc1fd502-0000001280skip-0000000256size.hg02-ee2deecf044fa5583f66188c9177b0f13332adc2-0000001024skip-0000000128size.hg[1]$hg-Rserverlog-G-T'{rev}:{node}\n'-r'1789+head()+parents(roots(only(head(), 1789)))+(only(head(), 1789) and (merge() or branchpoint()))'o2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1:o1789:44e80141ad530a2aa085e9bd9b5311b57eff72ff::o1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf:/o1250:d83212ecaa436c80d6113cf915ba35e2db787e79|~$hg-Rclient3pullserver--verbosepullingfromserversearchingforchangesalllocalchangesetsknownremotelypullbundle-cache:"missing"setslicedinto16subrangesin*.*seconds(glob)1changesetsfound4changesetsfound8changesetsfound16changesetsfound128changesetsfoundincaches64changesetsfoundincaches32changesetsfoundincaches8changesetsfoundincaches4changesetsfoundincaches2changesetsfoundincaches1changesetsfound4changesetsfound8changesetsfound256changesetsfoundincaches64changesetsfoundincaches8changesetsfoundincachesuncompressedsizeofbundlecontent:188(changelog)4(manifests)uncompressedsizeofbundlecontent:740(changelog)4(manifests)uncompressedsizeofbundlecontent:1476(changelog)4(manifests)uncompressedsizeofbundlecontent:2948(changelog)4(manifests)uncompressedsizeofbundlecontent:188(changelog)4(manifests)uncompressedsizeofbundlecontent:740(changelog)4(manifests)uncompressedsizeofbundlecontent:1476(changelog)4(manifests)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded608changesetswith0changesto0files(+1heads)newchangesetsd1807e351389:0f376356904f(run'hg heads'toseeheads,'hg merge'tomerge)$mvnewbundlesoldbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundles---oldbundles*(glob)+++newbundles*(glob)@@-1,14+1,17@@02-0f376356904fc8c1c6ceaac27990f2fd79b1f8c1-0000001856skip-0000000008size.hg02-17185c1c22f1266b084daf7cfb07b6ebbfbc65ab-0000001235skip-0000000001size.hg02-1dded5aafa0f8d548f6357cc2f8882dcc4489fbf-0000001516skip-0000000002size.hg+02-1ed78f99f705cb819a02f1227c217728d008e461-0000001524skip-0000000004size.hg02-2dc4f1ab9029719714b8e0dde8e3725a5bb28472-0000001408skip-0000000064size.hg02-2f0e261a08964bc1c607c0eda4978364c22a9b94-0000001504skip-0000000008size.hg02-44e80141ad530a2aa085e9bd9b5311b57eff72ff-0000001522skip-0000000001size.hg02-467b6e370e816747e27de0d0b9237f4090a33656-0000001152skip-0000000064size.hg02-484c46df3e41f371efd0ff74fa5221657527213f-0000001240skip-0000000008size.hg02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001248skip-0000000032size.hg+02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001264skip-0000000016size.hg02-540f762640ee62ca597ece26af725e6357e82805-0000000000skip-0000001024size.hg02-59e60b258b18cde1e931cf30ce4ae62b49e37abd-0000001520skip-0000000002size.hg+02-5eaa75df73c454c1afff722301a4c73e897de94d-0000001256skip-0000000008size.hg02-63ded94ceab180ac2fa13e1f0beeb4d2265998a3-0000001232skip-0000000002size.hg02-694ef7e5b2984f1ec66c3d960799f4ff2459672c-0000001236skip-0000000004size.hg02-7a55a4d5ce324910842c893b56173cf2a847cb9d-0000001472skip-0000000032size.hg@@-19,7+22,10@@02-b2d350c94c26edbb783aaa21fc24f1fc65c30e74-0000001536skip-0000000256size.hg02-bbd293bd171fd5b711d428db46940a72eca7a40f-0000001280skip-0000000128size.hg02-c12927fef661d2463043347101b90067c2961333-0000001280skip-0000000128size.hg+02-c232505f58fdf70bcf5f6ab6a555f23ffc74f761-0000001523skip-0000000001size.hg02-c72277ff25807eb444fa48a60afb434d78c21f2f-0000000899skip-0000000001size.hg+02-ca970a853ea24846035ccb324cc8de49ef768748-0000001252skip-0000000004size.hg+02-d1807e3513890ac71c2e8d10e9dc9a5b58b15d4b-0000001251skip-0000000001size.hg02-d83212ecaa436c80d6113cf915ba35e2db787e79-0000001024skip-0000000227size.hg02-da87a81c5310760f414a933e6550b7e8e60cf241-0000001792skip-0000000064size.hg02-dba2fddbf3c28198659046674a512afd616a1519-0000001472skip-0000000032size.hg@@-27,6+33,7@@02-e469a7aa5cce57653b6b02ff46c80b2d94d62629-0000000899skip-0000000029size.hg02-e469a7aa5cce57653b6b02ff46c80b2d94d62629-0000000912skip-0000000016size.hg02-e74670ea99533967c5d90da3ddbc0318cc1fd502-0000001280skip-0000000256size.hg+02-e74670ea99533967c5d90da3ddbc0318cc1fd502-0000001528skip-0000000008size.hg02-ee2deecf044fa5583f66188c9177b0f13332adc2-0000001024skip-0000000128size.hg02-f864bc82f6a2f2ecb49b83722e0895f9d657b0dd-0000001234skip-0000000001size.hg02-fb6c210a224903e81e5a8d2ee099cb0c9526ba8c-0000001512skip-0000000004size.hg[1]Singlepullcomingaftervariouscachewarming----------------------------------------------$hg-Rclient4pull--verboseserver|grep-v'add changeset'pullingfromserverrequestingallchangespullbundle-cache:"missing"setslicedinto16subrangesin*.*seconds(glob)1024changesetsfoundincaches256changesetsfound128changesetsfoundincaches64changesetsfoundincaches32changesetsfoundincaches8changesetsfoundincaches4changesetsfoundincaches2changesetsfoundincaches1changesetsfoundincaches4changesetsfoundincaches8changesetsfoundincaches16changesetsfoundincaches256changesetsfoundincaches256changesetsfoundincaches64changesetsfoundincaches8changesetsfoundincachesuncompressedsizeofbundlecontent:47108(changelog)4(manifests)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded2131changesetswith0changesto0files(+1heads)newchangesets1ea73414a91b:0f376356904f(run'hg heads'toseeheads,'hg merge'tomerge)$mvnewbundlesoldbundles$ls-1server/.hg/cache/pullbundles>newbundles$diff-uoldbundlesnewbundles---oldbundles*(glob)+++newbundles*(glob)@@-7,6+7,7@@02-44e80141ad530a2aa085e9bd9b5311b57eff72ff-0000001522skip-0000000001size.hg02-467b6e370e816747e27de0d0b9237f4090a33656-0000001152skip-0000000064size.hg02-484c46df3e41f371efd0ff74fa5221657527213f-0000001240skip-0000000008size.hg+02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001024skip-0000000256size.hg02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001248skip-0000000032size.hg02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001264skip-0000000016size.hg02-540f762640ee62ca597ece26af725e6357e82805-0000000000skip-0000001024size.hg[1]Pullwithpiece"not linear from head"--------------------------------------$hg-Rserverlog-G-T'{rev}:{node}\n'-r'branchpoint() + merge() + head() + children(branchpoint())'o2130:0f376356904fc8c1c6ceaac27990f2fd79b1f8c1:o1663:1710092b3ab17a6d2ecad664580991a608537749|\|o1518:c72277ff25807eb444fa48a60afb434d78c21f2f||||o1517:1dded5aafa0f8d548f6357cc2f8882dcc4489fbf||:+---o1251:d1807e3513890ac71c2e8d10e9dc9a5b58b15d4b||o|1250:d83212ecaa436c80d6113cf915ba35e2db787e79:|o|899:c31a4e0cc28d677b8020e46aa3bb2fd5ee5b1a06|/o898:1388f909cd2b0685efd4e2ce076d198bce20922c|~$hginittest-local-missing$hg-Rtest-local-missingpullserver--rev899--rev1518--verbosepullingfromserverpullbundle-cache:"missing"setslicedinto5subrangesin*.*seconds(glob)512changesetsfound256changesetsfound128changesetsfound4changesetsfound1changesetsfounduncompressedsizeofbundlecontent:92968(changelog)4(manifests)uncompressedsizeofbundlecontent:46596(changelog)4(manifests)uncompressedsizeofbundlecontent:23300(changelog)4(manifests)uncompressedsizeofbundlecontent:734(changelog)4(manifests)uncompressedsizeofbundlecontent:186(changelog)4(manifests)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded901changesetswith0changesto0files(+1heads)newchangesets1ea73414a91b:c31a4e0cc28d(run'hg heads'toseeheads,'hg merge'tomerge)$hg-Rtest-local-missingpullserver--verbosepullingfromserversearchingforchangesalllocalchangesetsknownremotelypullbundle-cache:"missing"setslicedinto19subrangesin*.*seconds(glob)4changesetsfound8changesetsfound16changesetsfound32changesetsfound64changesetsfound256changesetsfoundincaches128changesetsfoundincaches64changesetsfoundincaches32changesetsfoundincaches8changesetsfoundincaches4changesetsfoundincaches2changesetsfoundincaches4changesetsfoundincaches8changesetsfoundincaches16changesetsfoundincaches256changesetsfoundincaches256changesetsfoundincaches64changesetsfoundincaches8changesetsfoundincachesuncompressedsizeofbundlecontent:732(changelog)4(manifests)uncompressedsizeofbundlecontent:1460(changelog)4(manifests)uncompressedsizeofbundlecontent:2916(changelog)4(manifests)uncompressedsizeofbundlecontent:5828(changelog)4(manifests)uncompressedsizeofbundlecontent:11700(changelog)4(manifests)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded1230changesetswith0changesto0filesnewchangesetse600b80a2fc8:0f376356904f(run'hg update'togetaworkingcopy)Testcachesetting==================cachedirectory---------------$mkdirbundle-cache$cat<<EOF>>$HGRCPATH>[pullbundle]>cache-directory=$TESTTMP/bundle-cache>EOF$hgclone--pullserverother-cache-directoryrequestingallchangespullbundle-cache:"missing"setslicedinto16subrangesin*.*seconds(glob)addingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesaddingchangesetsaddingmanifestsaddingfilechangesadded2131changesetswith0changesto0files(+1heads)newchangesets1ea73414a91b:0f376356904fupdatingtobranchdefault0filesupdated,0filesmerged,0filesremoved,0filesunresolved$ls-1bundle-cache02-0f376356904fc8c1c6ceaac27990f2fd79b1f8c1-0000001856skip-0000000008size.hg02-1dded5aafa0f8d548f6357cc2f8882dcc4489fbf-0000001516skip-0000000002size.hg02-2dc4f1ab9029719714b8e0dde8e3725a5bb28472-0000001408skip-0000000064size.hg02-2f0e261a08964bc1c607c0eda4978364c22a9b94-0000001504skip-0000000008size.hg02-4a6d0f7d07d060b026d9fc690cd89cd26af96e42-0000001024skip-0000000256size.hg02-540f762640ee62ca597ece26af725e6357e82805-0000000000skip-0000001024size.hg02-89fab188d2ce3c4cde6be031f2fc5b9b4ff248e3-0000000900skip-0000000004size.hg02-97ede4832194ed56894374f2a1cc7a0022b486da-0000000904skip-0000000008size.hg02-b2d350c94c26edbb783aaa21fc24f1fc65c30e74-0000001536skip-0000000256size.hg02-bbd293bd171fd5b711d428db46940a72eca7a40f-0000001280skip-0000000128size.hg02-c72277ff25807eb444fa48a60afb434d78c21f2f-0000000899skip-0000000001size.hg02-da87a81c5310760f414a933e6550b7e8e60cf241-0000001792skip-0000000064size.hg02-dba2fddbf3c28198659046674a512afd616a1519-0000001472skip-0000000032size.hg02-e469a7aa5cce57653b6b02ff46c80b2d94d62629-0000000912skip-0000000016size.hg02-e74670ea99533967c5d90da3ddbc0318cc1fd502-0000001280skip-0000000256size.hg02-fb6c210a224903e81e5a8d2ee099cb0c9526ba8c-0000001512skip-0000000004size.hg$hgdebugpullbundlecacheoverlap-Rserver'all()'|grep-v'^ 'gathering100samplepullswithin2131revisionspullsize:non-cachedchangesets:ratioofcachedchangesets:bundlecount:ratioofcachedbundles:changesetsserved:sizeofcachedbundles:hitoncachedbundles: