[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