[PATCH 1 of 2] copies: create and use _loose_next function for _related

Yuya Nishihara yuya at tcha.org
Thu Apr 5 08:52:43 EDT 2018


On Wed, 04 Apr 2018 15:35:33 +0200, Gábor Stefanik wrote:
> # HG changeset patch
> # User Gábor Stefanik <gabor.stefanik at nng.com>
> # Date 1522848489 -7200
> #      Wed Apr 04 15:28:09 2018 +0200
> # Node ID d72ca973100a1f1a4451a7d1efdc3e43ebc2912e
> # Parent  656ac240f39284eec4435d25c01d71056aa4e8a5
> copies: create and use _loose_next function for _related
> 
> _loose_next is going to be a variant of the next function that tries to follow
> grafts and similar relationship when the regular next raises StopIteration.
> This is needed for bug 5834.

Can you send this with the actual fix? It's unclear how _loose_next() will
be used to address the problem.

> +def _loose_next(g):

s/_loose_next/_loosenext/ per coding style.

> @@ -748,16 +754,16 @@
>          f1r, f2r = f1.linkrev(), f2.linkrev()
> 
>          if f1r is None:
> -            f1 = next(g1)
> +            f1, g1 = _loose_next(g1)
>          if f2r is None:
> -            f2 = next(g2)
> +            f1, g1 = _loose_next(g1)

s/g1/g2/g

>          while True:
>              f1r, f2r = f1.linkrev(), f2.linkrev()
>              if f1r > f2r:
> -                f1 = next(g1)
> +                f1, g1 = _loose_next(g1)
>              elif f2r > f1r:
> -                f2 = next(g2)
> +                f1, g1 = _loose_next(g1)

s/g1/g2/g


More information about the Mercurial-devel mailing list