# HG changeset patch # User Boris Feld # Date 2017-10-11 05:40:00 # Node ID aa5e7b4a3a01e562b2d923eb460dcdecef8220f4 # Parent a95067b1dca6501b62072020b65809dd47471c2a phase: generate a push-race detection part on push We are about to switch phase pushing from using pushkey to using a the new dedicated binary part. We introduce the push race detection on its own to help detect potential impact. diff --git a/mercurial/exchange.py b/mercurial/exchange.py --- a/mercurial/exchange.py +++ b/mercurial/exchange.py @@ -735,6 +735,31 @@ def _pushb2ctxcheckheads(pushop, bundler data = iter(sorted(affected)) bundler.newpart('check:updated-heads', data=data) +def _pushing(pushop): + """return True if we are pushing anything""" + return bool(pushop.outgoing.missing + or pushop.outdatedphases + or pushop.outobsmarkers + or pushop.outbookmarks) + +@b2partsgenerator('check-phases') +def _pushb2checkphases(pushop, bundler): + """insert phase move checking""" + if not _pushing(pushop) or pushop.force: + return + b2caps = bundle2.bundle2caps(pushop.remote) + hasphaseheads = 'heads' in b2caps.get('phases', ()) + if pushop.remotephases is not None and hasphaseheads: + # check that the remote phase has not changed + checks = [[] for p in phases.allphases] + checks[phases.public].extend(pushop.remotephases.publicheads) + checks[phases.draft].extend(pushop.remotephases.draftroots) + if any(checks): + for nodes in checks: + nodes.sort() + checkdata = phases.binaryencode(checks) + bundler.newpart('check:phases', data=checkdata) + @b2partsgenerator('changeset') def _pushb2ctx(pushop, bundler): """handle changegroup push through bundle2 diff --git a/tests/test-acl.t b/tests/test-acl.t --- a/tests/test-acl.t +++ b/tests/test-acl.t @@ -92,14 +92,17 @@ Extension disabled for lack of a hook ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -116,7 +119,7 @@ Extension disabled for lack of a hook bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -154,14 +157,17 @@ Extension disabled for lack of acl.sourc ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -180,7 +186,7 @@ Extension disabled for lack of acl.sourc bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -219,14 +225,17 @@ No [acl.allow]/[acl.deny] ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -255,7 +264,7 @@ No [acl.allow]/[acl.deny] bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -294,14 +303,17 @@ Empty [acl.allow] ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -324,7 +336,7 @@ Empty [acl.allow] acl: branch access granted: "ef1ea85a6374" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374") @@ -358,14 +370,17 @@ fred is allowed inside foo/ ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -392,7 +407,7 @@ fred is allowed inside foo/ acl: branch access granted: "911600dab2ae" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae") @@ -427,14 +442,17 @@ Empty [acl.deny] ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -457,7 +475,7 @@ Empty [acl.deny] acl: branch access granted: "ef1ea85a6374" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374") @@ -493,14 +511,17 @@ fred is allowed inside foo/, but not foo ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -527,7 +548,7 @@ fred is allowed inside foo/, but not foo acl: branch access granted: "911600dab2ae" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae") @@ -564,14 +585,17 @@ fred is allowed inside foo/, but not foo ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -596,7 +620,7 @@ fred is allowed inside foo/, but not foo acl: branch access granted: "f9cafe1212c8" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8") @@ -632,14 +656,17 @@ fred is allowed inside foo/, but not foo ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -662,7 +689,7 @@ fred is allowed inside foo/, but not foo acl: branch access granted: "ef1ea85a6374" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374") @@ -702,14 +729,17 @@ barney is allowed everywhere ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -738,7 +768,7 @@ barney is allowed everywhere bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -784,14 +814,17 @@ wilma can change files with a .txt exten ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -818,7 +851,7 @@ wilma can change files with a .txt exten acl: branch access granted: "911600dab2ae" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae") @@ -861,14 +894,17 @@ file specified by acl.config does not ex ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -886,7 +922,7 @@ file specified by acl.config does not ex acl: checking access for user "barney" error: pretxnchangegroup.acl hook raised an exception: [Errno *] * (glob) bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: No such file or directory: ../acl.config @@ -933,14 +969,17 @@ betty is allowed inside foo/ by a acl.co ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -967,7 +1006,7 @@ betty is allowed inside foo/ by a acl.co acl: branch access granted: "911600dab2ae" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae") @@ -1016,14 +1055,17 @@ acl.config can set only [acl.allow]/[acl ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1052,7 +1094,7 @@ acl.config can set only [acl.allow]/[acl bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -1101,14 +1143,17 @@ fred is always allowed ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1137,7 +1182,7 @@ fred is always allowed bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -1182,14 +1227,17 @@ no one is allowed inside foo/Bar/ ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1214,7 +1262,7 @@ no one is allowed inside foo/Bar/ acl: branch access granted: "f9cafe1212c8" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8") @@ -1257,14 +1305,17 @@ OS-level groups ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1294,7 +1345,7 @@ OS-level groups bundle2-input-part: total payload size 1553 bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total updating the branch cache bundle2-output-bundle: "HG20", 2 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -1339,14 +1390,17 @@ OS-level groups ef1ea85a6374b77d6da9dcda9541f498f2d17df7 f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 - bundle2-output-bundle: "HG20", 4 parts total + bundle2-output-bundle: "HG20", 5 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 24 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 24 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1373,7 +1427,7 @@ OS-level groups acl: branch access granted: "f9cafe1212c8" on branch "default" error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8") bundle2-input-part: total payload size 1553 - bundle2-input-bundle: 3 parts total + bundle2-input-bundle: 4 parts total transaction abort! rollback completed abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8") @@ -1455,8 +1509,9 @@ No branch acls specified f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1464,6 +1519,8 @@ No branch acls specified bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1498,7 +1555,7 @@ No branch acls specified pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01" - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total updating the branch cache bundle2-output-bundle: "HG20", 3 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -1543,8 +1600,9 @@ Branch acl deny test f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1552,6 +1610,8 @@ Branch acl deny test bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1581,7 +1641,7 @@ Branch acl deny test acl: path access granted: "911600dab2ae" error: pretxnchangegroup.acl hook failed: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82") bundle2-input-part: total payload size 2068 - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total transaction abort! rollback completed abort: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82") @@ -1617,8 +1677,9 @@ Branch acl empty allow test f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1626,6 +1687,8 @@ Branch acl empty allow test bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1649,7 +1712,7 @@ Branch acl empty allow test acl: acl.deny not enabled error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 2068 - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total transaction abort! rollback completed abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374") @@ -1687,8 +1750,9 @@ Branch acl allow other f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1696,6 +1760,8 @@ Branch acl allow other bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1719,7 +1785,7 @@ Branch acl allow other acl: acl.deny not enabled error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 2068 - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total transaction abort! rollback completed abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374") @@ -1751,8 +1817,9 @@ Branch acl allow other f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1760,6 +1827,8 @@ Branch acl allow other bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1794,7 +1863,7 @@ Branch acl allow other pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01" - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total updating the branch cache bundle2-output-bundle: "HG20", 3 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -1844,8 +1913,9 @@ push foobar into the remote f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1853,6 +1923,8 @@ push foobar into the remote bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1887,7 +1959,7 @@ push foobar into the remote pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01" - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total updating the branch cache bundle2-output-bundle: "HG20", 3 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -1936,8 +2008,9 @@ Branch acl conflicting deny f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -1945,6 +2018,8 @@ Branch acl conflicting deny bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -1968,7 +2043,7 @@ Branch acl conflicting deny acl: acl.deny not enabled error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 2068 - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total transaction abort! rollback completed abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374") @@ -2005,8 +2080,9 @@ User 'astro' must not be denied f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -2014,6 +2090,8 @@ User 'astro' must not be denied bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -2048,7 +2126,7 @@ User 'astro' must not be denied pushing key for "phases:911600dab2ae7a9baff75958b84fe606851ce955" bundle2-input-part: "pushkey" (params: 4 mandatory) supported pushing key for "phases:e8fc755d4d8217ee5b0c2bb41558c40d43b92c01" - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total updating the branch cache bundle2-output-bundle: "HG20", 3 parts total bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload @@ -2091,8 +2169,9 @@ Non-astro users must be denied f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd 911600dab2ae7a9baff75958b84fe606851ce955 e8fc755d4d8217ee5b0c2bb41558c40d43b92c01 - bundle2-output-bundle: "HG20", 5 parts total + bundle2-output-bundle: "HG20", 6 parts total bundle2-output-part: "replycaps" 168 bytes payload + bundle2-output-part: "check:phases" 48 bytes payload bundle2-output-part: "check:heads" streamed payload bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload @@ -2100,6 +2179,8 @@ Non-astro users must be denied bundle2-input-bundle: with-transaction bundle2-input-part: "replycaps" supported bundle2-input-part: total payload size 168 + bundle2-input-part: "check:phases" supported + bundle2-input-part: total payload size 48 bundle2-input-part: "check:heads" supported bundle2-input-part: total payload size 20 bundle2-input-part: "changegroup" (params: 1 mandatory) supported @@ -2123,7 +2204,7 @@ Non-astro users must be denied acl: acl.deny not enabled error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374") bundle2-input-part: total payload size 2068 - bundle2-input-bundle: 4 parts total + bundle2-input-bundle: 5 parts total transaction abort! rollback completed abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")