Mercurial > hg-stable
changeset 4350:8aee687f0214
merge: fix quadratic behavior in find-copies
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 16 Apr 2007 12:24:52 -0500 |
parents | b633f470944e |
children | c3c53eb44611 |
files | mercurial/merge.py |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Mon Apr 16 09:51:50 2007 -0500 +++ b/mercurial/merge.py Mon Apr 16 12:24:52 2007 -0500 @@ -105,10 +105,15 @@ def findold(fctx): "find files that path was copied from, back to linkrev limit" old = {} + seen = {} orig = fctx.path() visit = [fctx] while visit: fc = visit.pop() + s = str(fc) + if s in seen: + continue + seen[s] = 1 if fc.path() != orig and fc.path() not in old: old[fc.path()] = 1 if fc.rev() < limit: