[PATCH 2 of 2] copies: clean up _related logic
Yuya Nishihara
yuya at tcha.org
Thu Apr 5 08:57:01 EDT 2018
On Wed, 04 Apr 2018 15:35:34 +0200, Gábor Stefanik wrote:
> # HG changeset patch
> # User Gábor Stefanik <gabor.stefanik at nng.com>
> # Date 1522848882 -7200
> # Wed Apr 04 15:34:42 2018 +0200
> # Node ID 084ee003f2f3cb4d51129c4f1bb63e1ff4db14d0
> # Parent d72ca973100a1f1a4451a7d1efdc3e43ebc2912e
> copies: clean up _related logic
>
> The limit parameter was never actually used, since the only way the 4th case
> could be reached was if f1r and f2r converged. The new code makes this clear,
> and additionally reduces the conditional block to just 3 cases.
Yeah. I suspect the limit should be tested first, but doing that breaks
some tests. So, perhaps we have to handle the case of f.linkrev() < anc.rev()
anyway.
> diff -r d72ca973100a -r 084ee003f2f3 mercurial/copies.py
> --- a/mercurial/copies.py Wed Apr 04 15:28:09 2018 +0200
> +++ b/mercurial/copies.py Wed Apr 04 15:34:42 2018 +0200
> @@ -737,7 +737,7 @@
> except StopIteration:
> raise
>
> -def _related(f1, f2, limit):
> +def _related(f1, f2):
There's one more caller of _related().
> @@ -764,10 +764,8 @@
> f1, g1 = _loose_next(g1)
> elif f2r > f1r:
> f1, g1 = _loose_next(g1)
> - elif f1 == f2:
> - return f1 # a match
> - elif f1r == f2r or f1r < limit or f2r < limit:
> - return False # copy no longer relevant
> + else: # f1 and f2 point to files in the same linkrev
> + return f1 == f2 # true if they point to the same file
More information about the Mercurial-devel
mailing list