Show More
@@ -2298,8 +2298,10 b' def perfbranchmapupdate(ui, repo, base=(' | |||||
2298 | $ hg perfbranchmapupdate --base 'stable' --target 'default' |
|
2298 | $ hg perfbranchmapupdate --base 'stable' --target 'default' | |
2299 | """ |
|
2299 | """ | |
2300 | from mercurial import branchmap |
|
2300 | from mercurial import branchmap | |
|
2301 | from mercurial import repoview | |||
2301 | opts = _byteskwargs(opts) |
|
2302 | opts = _byteskwargs(opts) | |
2302 | timer, fm = gettimer(ui, opts) |
|
2303 | timer, fm = gettimer(ui, opts) | |
|
2304 | unfi = repo.unfiltered() | |||
2303 | x = [None] # used to pass data between closure |
|
2305 | x = [None] # used to pass data between closure | |
2304 |
|
2306 | |||
2305 | # we use a `list` here to avoid possible side effect from smartset |
|
2307 | # we use a `list` here to avoid possible side effect from smartset | |
@@ -2322,21 +2324,43 b' def perfbranchmapupdate(ui, repo, base=(' | |||||
2322 | newrevs = list(alltargetrevs.difference(allbaserevs)) |
|
2324 | newrevs = list(alltargetrevs.difference(allbaserevs)) | |
2323 | newrevs.sort() |
|
2325 | newrevs.sort() | |
2324 |
|
2326 | |||
|
2327 | allrevs = frozenset(unfi.changelog.revs()) | |||
|
2328 | basefilterrevs = frozenset(allrevs.difference(allbaserevs)) | |||
|
2329 | targetfilterrevs = frozenset(allrevs.difference(alltargetrevs)) | |||
|
2330 | ||||
|
2331 | def basefilter(repo, visibilityexceptions=None): | |||
|
2332 | return basefilterrevs | |||
|
2333 | ||||
|
2334 | def targetfilter(repo, visibilityexceptions=None): | |||
|
2335 | return targetfilterrevs | |||
|
2336 | ||||
2325 | msg = b'benchmark of branchmap with %d revisions with %d new ones\n' |
|
2337 | msg = b'benchmark of branchmap with %d revisions with %d new ones\n' | |
2326 | ui.status(msg % (len(allbaserevs), len(newrevs))) |
|
2338 | ui.status(msg % (len(allbaserevs), len(newrevs))) | |
|
2339 | if targetfilterrevs: | |||
|
2340 | msg = b'(%d revisions still filtered)\n' | |||
|
2341 | ui.status(msg % len(targetfilterrevs)) | |||
2327 |
|
2342 | |||
2328 |
|
|
2343 | try: | |
|
2344 | repoview.filtertable[b'__perf_branchmap_update_base'] = basefilter | |||
|
2345 | repoview.filtertable[b'__perf_branchmap_update_target'] = targetfilter | |||
|
2346 | ||||
|
2347 | baserepo = repo.filtered(b'__perf_branchmap_update_base') | |||
|
2348 | targetrepo = repo.filtered(b'__perf_branchmap_update_target') | |||
|
2349 | ||||
2329 | base = branchmap.branchcache() |
|
2350 | base = branchmap.branchcache() | |
2330 | base.update(repo, allbaserevs) |
|
2351 | base.update(baserepo, allbaserevs) | |
2331 |
|
2352 | |||
2332 | def setup(): |
|
2353 | def setup(): | |
2333 | x[0] = base.copy() |
|
2354 | x[0] = base.copy() | |
2334 |
|
2355 | |||
2335 | def bench(): |
|
2356 | def bench(): | |
2336 | x[0].update(repo, newrevs) |
|
2357 | x[0].update(targetrepo, newrevs) | |
2337 |
|
2358 | |||
2338 | timer(bench, setup=setup) |
|
2359 | timer(bench, setup=setup) | |
2339 | fm.end() |
|
2360 | fm.end() | |
|
2361 | finally: | |||
|
2362 | repoview.filtertable.pop(b'__perf_branchmap_update_base', None) | |||
|
2363 | repoview.filtertable.pop(b'__perf_branchmap_update_target', None) | |||
2340 |
|
2364 | |||
2341 | @command(b'perfbranchmapload', [ |
|
2365 | @command(b'perfbranchmapload', [ | |
2342 | (b'f', b'filter', b'', b'Specify repoview filter'), |
|
2366 | (b'f', b'filter', b'', b'Specify repoview filter'), |
General Comments 0
You need to be logged in to leave comments.
Login now