Mercurial > hg
changeset 22411:c497e39d81a3
convert: add support for deterministic progress bar on scanning phase
This makes it possible to estimate how long the "scanning source"
phase will take, if the specified source repo type supports a quick
"how many changes" check.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Mon, 26 May 2014 11:53:12 -0400 |
parents | 9fdbf96fc0e0 |
children | dde99b827288 |
files | hgext/convert/common.py hgext/convert/convcmd.py |
diffstat | 2 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/convert/common.py Wed Sep 10 11:01:47 2014 -0400 +++ b/hgext/convert/common.py Mon May 26 11:53:12 2014 -0400 @@ -109,6 +109,13 @@ """Return the commit object for version""" raise NotImplementedError + def numcommits(self): + """Return the number of commits in this source. + + If unknown, return None. + """ + return None + def gettags(self): """Return the tags as a dictionary of name: revision
--- a/hgext/convert/convcmd.py Wed Sep 10 11:01:47 2014 -0400 +++ b/hgext/convert/convcmd.py Mon May 26 11:53:12 2014 -0400 @@ -171,6 +171,7 @@ visit = heads known = set() parents = {} + numcommits = self.source.numcommits() while visit: n = visit.pop(0) if n in known: @@ -180,7 +181,8 @@ if m == SKIPREV or self.dest.hascommitfrommap(m): continue known.add(n) - self.ui.progress(_('scanning'), len(known), unit=_('revisions')) + self.ui.progress(_('scanning'), len(known), unit=_('revisions'), + total=numcommits) commit = self.cachecommit(n) parents[n] = [] for p in commit.parents: