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.
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
<?include defines.wxi ?>
<Fragment>
<DirectoryRef Id="INSTALLDIR" FileSource="$(var.SourceDir)">
<Component Id="distOutput" Guid="$(var.dist.guid)" Win64='$(var.IsX64)'>
<File Name="python27.dll" KeyPath="yes" />
</Component>
<Directory Id="libdir" Name="lib" FileSource="$(var.SourceDir)/lib">
<Component Id="libOutput" Guid="$(var.lib.guid)" Win64='$(var.IsX64)'>
<File Name="library.zip" KeyPath="yes" />
<File Name="mercurial.base85.pyd" />
<File Name="mercurial.bdiff.pyd" />
<File Name="mercurial.diffhelpers.pyd" />
<File Name="mercurial.mpatch.pyd" />
<File Name="mercurial.osutil.pyd" />
<File Name="mercurial.parsers.pyd" />
<File Name="pyexpat.pyd" />
<File Name="bz2.pyd" />
<File Name="select.pyd" />
<File Name="unicodedata.pyd" />
<File Name="_ctypes.pyd" />
<File Name="_elementtree.pyd" />
<File Name="_hashlib.pyd" />
<File Name="_socket.pyd" />
<File Name="_ssl.pyd" />
</Component>
</Directory>
</DirectoryRef>
</Fragment>
</Wix>