Mercurial > hg
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 |