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