Mercurial > hg
comparison hgext/convert/convcmd.py @ 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 | 35ab037de989 |
children | 6ddc86eedc3b |
comparison
equal
deleted
inserted
replaced
22410:9fdbf96fc0e0 | 22411:c497e39d81a3 |
---|---|
169 '''Return a mapping that identifies the uncommitted parents of every | 169 '''Return a mapping that identifies the uncommitted parents of every |
170 uncommitted changeset.''' | 170 uncommitted changeset.''' |
171 visit = heads | 171 visit = heads |
172 known = set() | 172 known = set() |
173 parents = {} | 173 parents = {} |
174 numcommits = self.source.numcommits() | |
174 while visit: | 175 while visit: |
175 n = visit.pop(0) | 176 n = visit.pop(0) |
176 if n in known: | 177 if n in known: |
177 continue | 178 continue |
178 if n in self.map: | 179 if n in self.map: |
179 m = self.map[n] | 180 m = self.map[n] |
180 if m == SKIPREV or self.dest.hascommitfrommap(m): | 181 if m == SKIPREV or self.dest.hascommitfrommap(m): |
181 continue | 182 continue |
182 known.add(n) | 183 known.add(n) |
183 self.ui.progress(_('scanning'), len(known), unit=_('revisions')) | 184 self.ui.progress(_('scanning'), len(known), unit=_('revisions'), |
185 total=numcommits) | |
184 commit = self.cachecommit(n) | 186 commit = self.cachecommit(n) |
185 parents[n] = [] | 187 parents[n] = [] |
186 for p in commit.parents: | 188 for p in commit.parents: |
187 parents[n].append(p) | 189 parents[n].append(p) |
188 visit.append(p) | 190 visit.append(p) |