Mercurial > hg
comparison tests/test-encoding-align.t @ 42230:fdbeacb9d456
copies: filter out copies from non-existent source later in _chain()
_changesetforwardcopies() repeatedly calls _chain(). That is very
expensive because _chain() does lookups in the manifest. I hope to
split up the function in two parts: 1) simple chaining, not
considering end points, and 2) filter out files that don't exist in
the end points (and ping-pong copies/renames).
This patches gets us closer to that by moving the check for
non-existent source later in the function. Now there are no more
checks for "src" and "dst" in the first loop; all the filtering of
invalid copies is done in the second loop. The code also looks much
more consistent now.
No measureable impact on `hg debugpathcopies 4.0 4.8`. That shouldn't
be surprising since the only case we're doing more checks now is in
case of chained copies/renames, which are quire rare in practice.
Differential Revision: https://phab.mercurial-scm.org/D6277
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 17 Apr 2019 23:10:29 -0700 |
parents | 24bef6a99958 |
children |
comparison
equal
deleted
inserted
replaced
42229:5a3979529740 | 42230:fdbeacb9d456 |
---|