comparison hgext/convert/convcmd.py @ 24328:603a8d09e12d

convert: adjust progress bar for octopus merges (issue4169) For merges, we walk the files N-1 times, where N is the number of parents. This means that for an octopus merge with 3 parents and 2 changed files, we actually fetch 6 files. This corrects the progress output of the convert command when such commits are encountered.
author Augie Fackler <augie@google.com>
date Thu, 12 Mar 2015 21:41:50 -0400
parents 6ddc86eedc3b
children 216fa1ba9993
comparison
equal deleted inserted replaced
24327:f7c0556d22d7 24328:603a8d09e12d
411 self.ui.status(_('spliced in %s as parents of %s\n') % 411 self.ui.status(_('spliced in %s as parents of %s\n') %
412 (parents, rev)) 412 (parents, rev))
413 parents = [self.map.get(p, p) for p in parents] 413 parents = [self.map.get(p, p) for p in parents]
414 except KeyError: 414 except KeyError:
415 parents = [b[0] for b in pbranches] 415 parents = [b[0] for b in pbranches]
416 source = progresssource(self.ui, self.source, len(files)) 416 if len(parents) < 3:
417 source = progresssource(self.ui, self.source, len(files))
418 else:
419 # For an octopus merge, we end up traversing the list of
420 # changed files N-1 times. This tweak to the number of
421 # files makes it so the progress bar doesn't overflow
422 # itself.
423 source = progresssource(self.ui, self.source,
424 len(files) * (len(parents) - 1))
417 newnode = self.dest.putcommit(files, copies, parents, commit, 425 newnode = self.dest.putcommit(files, copies, parents, commit,
418 source, self.map, full) 426 source, self.map, full)
419 source.close() 427 source.close()
420 self.source.converted(rev, newnode) 428 self.source.converted(rev, newnode)
421 self.map[rev] = newnode 429 self.map[rev] = newnode
533 if not revmapfile: 541 if not revmapfile:
534 revmapfile = destc.revmapfile() 542 revmapfile = destc.revmapfile()
535 543
536 c = converter(ui, srcc, destc, revmapfile, opts) 544 c = converter(ui, srcc, destc, revmapfile, opts)
537 c.convert(sortmode) 545 c.convert(sortmode)
538