Comments
Patch
@@ -429,12 +429,16 @@
# full blown discovery
# if the server has a limit to its arguments size, we can't grow the sample.
- grow_sample = local.ui.configbool(b'devel', b'discovery.grow-sample')
+ configbool = local.ui.configbool
+ grow_sample = configbool(b'devel', b'discovery.grow-sample')
grow_sample = grow_sample and not remote.limitedarguments
+ dynamic_sample = configbool(b'devel', b'discovery.grow-sample.dynamic')
+ hard_limit_sample = not (dynamic_sample or remote.limitedarguments)
+
randomize = ui.configbool(b'devel', b'discovery.randomize')
disco = partialdiscovery(
- local, ownheads, not grow_sample, randomize=randomize
+ local, ownheads, hard_limit_sample, randomize=randomize
)
if initial_head_exchange:
# treat remote heads (and maybe own heads) as a first implicit sample
@@ -1024,6 +1024,12 @@
If False, the sample size used in set discovery will not be increased
through the process
+ * devel.discovery.grow-sample.dynamic=True
+
+ When discovery.grow-sample.dynamic is True, the default, the sample size is
+ adapted to the shape of the undecided set (it is set to the max of:
+ <target-size>, len(roots(undecided)), len(heads(undecided)
+
* devel.discovery.grow-sample.rate=1.05
the rate at which the sample grow
@@ -737,6 +737,14 @@
b'discovery.grow-sample',
default=True,
)
+# When discovery.grow-sample.dynamic is True, the default, the sample size is
+# adapted to the shape of the undecided set (it is set to the max of:
+# <target-size>, len(roots(undecided)), len(heads(undecided)
+coreconfigitem(
+ b'devel',
+ b'discovery.grow-sample.dynamic',
+ default=True,
+)
# discovery.grow-sample.rate control the rate at which the sample grow
coreconfigitem(
b'devel',