Show More
@@ -41,7 +41,7 b' def _updatesample(dag, nodes, sample, al' | |||
|
41 | 41 | def _setupsample(dag, nodes, size): |
|
42 | 42 | if len(nodes) <= size: |
|
43 | 43 | return set(nodes), None, 0 |
|
44 |
always = |
|
|
44 | always = dag.headsetofconnecteds(nodes) | |
|
45 | 45 | desiredlen = size - len(always) |
|
46 | 46 | if desiredlen <= 0: |
|
47 | 47 | # This could be bad if there are very many heads, all unknown to the |
@@ -265,4 +265,62 b' Both many new on top of long history:' | |||
|
265 | 265 | common heads: 7ead0cba2838 |
|
266 | 266 | |
|
267 | 267 | |
|
268 | One with >200 heads, which used to use up all of the sample: | |
|
268 | 269 | |
|
270 | $ hg init manyheads | |
|
271 | $ cd manyheads | |
|
272 | $ echo "+300:r @a" >dagdesc | |
|
273 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
274 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
275 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
276 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
277 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
278 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
279 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
280 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
281 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
282 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
283 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
284 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
285 | $ echo "*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3 *r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3*r+3" >>dagdesc # 20 heads | |
|
286 | $ echo "@b *r+3" >>dagdesc # one more head | |
|
287 | $ hg debugbuilddag <dagdesc | |
|
288 | reading DAG from stdin | |
|
289 | ||
|
290 | $ hg heads -t --template . | wc -c | |
|
291 | 261 | |
|
292 | ||
|
293 | $ hg clone -b a . a | |
|
294 | adding changesets | |
|
295 | adding manifests | |
|
296 | adding file changes | |
|
297 | added 1340 changesets with 0 changes to 0 files (+259 heads) | |
|
298 | updating to branch a | |
|
299 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
300 | $ hg clone -b b . b | |
|
301 | adding changesets | |
|
302 | adding manifests | |
|
303 | adding file changes | |
|
304 | added 304 changesets with 0 changes to 0 files | |
|
305 | updating to branch b | |
|
306 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
307 | ||
|
308 | $ hg -R a debugdiscovery b --debug --verbose | |
|
309 | comparing with b | |
|
310 | query 1; heads | |
|
311 | searching for changes | |
|
312 | taking quick initial sample | |
|
313 | searching: 2 queries | |
|
314 | query 2; still undecided: 1080, sample size is: 260 | |
|
315 | sampling from both directions | |
|
316 | searching: 3 queries | |
|
317 | query 3; still undecided: 820, sample size is: 260 | |
|
318 | sampling from both directions | |
|
319 | searching: 4 queries | |
|
320 | query 4; still undecided: 560, sample size is: 260 | |
|
321 | sampling from both directions | |
|
322 | searching: 5 queries | |
|
323 | query 5; still undecided: 300, sample size is: 200 | |
|
324 | 5 total queries | |
|
325 | common heads: 3ee37d65064a | |
|
326 |
General Comments 0
You need to be logged in to leave comments.
Login now