Comments
Patch
@@ -2247,17 +2247,24 @@ def perfbranchmapload(ui, repo, filter=b
ui.status(b'%s - %s\n'
% (filtername, util.bytecount(st.st_size)))
return
- if filter:
+ if not filter:
+ filter = None
+ subsettable = getbranchmapsubsettable()
+ if filter is None:
+ repo = repo.unfiltered()
+ else:
repo = repoview.repoview(repo, filter)
- else:
- repo = repo.unfiltered()
repo.branchmap() # make sure we have a relevant, up to date branchmap
+ currentfilter = filter
# try once without timer, the filter may not be cached
- if branchmap.read(repo) is None:
- raise error.Abort(b'No branchmap cached for %s repo'
- % (filter or b'unfiltered'))
+ while branchmap.read(repo) is None:
+ currentfilter = subsettable.get(currentfilter)
+ if currentfilter is None:
+ raise error.Abort(b'No branchmap cached for %s repo'
+ % (filter or b'unfiltered'))
+ repo = repo.filtered(currentfilter)
timer, fm = gettimer(ui, opts)
def setup():
if clearrevlogs:
@@ -143,6 +143,7 @@ perfstatus
$ hg perfunidiff --alldata 1
$ hg perfbookmarks
$ hg perfbranchmap
+ $ hg perfbranchmapload
$ hg perfcca
$ hg perfchangegroupchangelog
$ hg perfchangegroupchangelog --cgversion 01