Mercurial > hg
diff contrib/showstack.py @ 28390:48e1a641765d stable
obsolete: fix n^2 marker computation behavior
Previously, if you ran obsolete.createmarkers with a bunch of markers that did
not have successors (like when you do a prune), it encountered a n^2 computation
behavior because the loop would read the changelog (to get ctx.parents()), then
add a marker, in a loop. Adding a marker invalidated the computehidden cache,
and reading the changelog recomputed it.
This resulted in pruning 150 commits taking 150+ seconds in a large repo.
The fix is to break the reading part of the loop to be separate from the writing
part.
author | Durham Goode <durham@fb.com> |
---|---|
date | Thu, 04 Feb 2016 15:38:04 -0800 |
parents | bdac264e5ed4 |
children | f2fe7b199bb4 |