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)