diff i18n/hggettext @ 27984:e60e13a86529

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 80deae3bc5ea
children 2516bba643e7
line wrap: on
line diff