[PATCH 2 of 2 convert-git-progress] convert: adjust progress bar for octopus merges (issue4169)
Martin von Zweigbergk
martinvonz at google.com
Fri Mar 13 00:42:03 CDT 2015
Looks like forgot to update the test case you added in 1/2. There's also
stray line deletion in the patch you may want to drop.
On Thu, Mar 12, 2015 at 6:44 PM Augie Fackler <raf at durin42.com> wrote:
> # HG changeset patch
> # User Augie Fackler <augie at google.com>
> # Date 1426210910 14400
> # Thu Mar 12 21:41:50 2015 -0400
> # Node ID 31ffd2581ded094d80f06e219ddfc2ee774d4b66
> # Parent 8836d4b5f3d9c129277cbb9f27bfaa78bd217324
> 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.
>
> diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py
> --- a/hgext/convert/convcmd.py
> +++ b/hgext/convert/convcmd.py
> @@ -413,7 +413,15 @@ class converter(object):
> parents = [self.map.get(p, p) for p in parents]
> except KeyError:
> parents = [b[0] for b in pbranches]
> - source = progresssource(self.ui, self.source, len(files))
> + if len(parents) < 3:
> + source = progresssource(self.ui, self.source, len(files))
> + else:
> + # For an octopus merge, we end up traversing the list of
> + # changed files N-1 times. This tweak to the number of
> + # files makes it so the progress bar doesn't overflow
> + # itself.
> + source = progresssource(self.ui, self.source,
> + len(files) * (len(parents) - 1))
> newnode = self.dest.putcommit(files, copies, parents, commit,
> source, self.map, full)
> source.close()
> @@ -531,4 +539,3 @@ def convert(ui, src, dest=None, revmapfi
>
> c = converter(ui, srcc, destc, revmapfile, opts)
> c.convert(sortmode)
> -
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150313/dcf31018/attachment.html>
More information about the Mercurial-devel
mailing list