Show More
@@ -2298,8 +2298,10 b' def perfbranchmapupdate(ui, repo, base=(' | |||
|
2298 | 2298 | $ hg perfbranchmapupdate --base 'stable' --target 'default' |
|
2299 | 2299 | """ |
|
2300 | 2300 | from mercurial import branchmap |
|
2301 | from mercurial import repoview | |
|
2301 | 2302 | opts = _byteskwargs(opts) |
|
2302 | 2303 | timer, fm = gettimer(ui, opts) |
|
2304 | unfi = repo.unfiltered() | |
|
2303 | 2305 | x = [None] # used to pass data between closure |
|
2304 | 2306 | |
|
2305 | 2307 | # we use a `list` here to avoid possible side effect from smartset |
@@ -2322,21 +2324,43 b' def perfbranchmapupdate(ui, repo, base=(' | |||
|
2322 | 2324 | newrevs = list(alltargetrevs.difference(allbaserevs)) |
|
2323 | 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 | 2337 | msg = b'benchmark of branchmap with %d revisions with %d new ones\n' |
|
2326 | 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 | 2350 | base = branchmap.branchcache() |
|
2330 | base.update(repo, allbaserevs) | |
|
2351 | base.update(baserepo, allbaserevs) | |
|
2331 | 2352 | |
|
2332 | 2353 | def setup(): |
|
2333 | 2354 | x[0] = base.copy() |
|
2334 | 2355 | |
|
2335 | 2356 | def bench(): |
|
2336 | x[0].update(repo, newrevs) | |
|
2357 | x[0].update(targetrepo, newrevs) | |
|
2337 | 2358 | |
|
2338 | 2359 | timer(bench, setup=setup) |
|
2339 | 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 | 2365 | @command(b'perfbranchmapload', [ |
|
2342 | 2366 | (b'f', b'filter', b'', b'Specify repoview filter'), |
General Comments 0
You need to be logged in to leave comments.
Login now