##// END OF EJS Templates
revset: improve performance of _generatorset.__contains__ (issue 4201)...
revset: improve performance of _generatorset.__contains__ (issue 4201) _generatorset.__contains__ and __contains__ from child classes were calling into __iter__ to look for values. Since all previously-encountered values from the generator were cached and checked in __contains__ before this iteration, __contains__ was effectively performing iteration busy work which could lead to an explosion of redundant work. This patch changes __contains__ to be more intelligent. Instead of looking at all values via __iter__, __contains__ will instead go straight to "new" values from the underlying generator. On a clone of the Firefox repository with around 200,000 changesets, this patch decreases the execution time of the revset '::(200067)::' from ~100s to ~4s on the author's machine. Rebase operations (which use the aforementioned revset), speed up accordingly.

File last commit:

r13042:bd9bc412 stable
r20828:3210b793 default
Show More
doc.wxs
50 lines | 1.9 KiB | text/plain | TextLexer
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include guids.wxi ?>
<?include defines.wxi ?>
<Fragment>
<ComponentGroup Id="docFolder">
<ComponentRef Id="doc.hg.1.html" />
<ComponentRef Id="doc.hgignore.5.html" />
<ComponentRef Id="doc.hgrc.5.html" />
<ComponentRef Id="doc.style.css" />
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="docdir" Name="doc" FileSource="$(var.SourceDir)">
<Component Id="doc.hg.1.html" Guid="$(var.doc.hg.1.html.guid)" Win64='$(var.IsX64)'>
<File Name="hg.1.html" KeyPath="yes">
<Shortcut Id="hg1StartMenu" Directory="ProgramMenuDir"
Name="Mercurial Command Reference"
Icon="hgIcon.ico" IconIndex="0" Advertise="yes"
/>
</File>
</Component>
<Component Id="doc.hgignore.5.html" Guid="$(var.doc.hgignore.5.html.guid)" Win64='$(var.IsX64)'>
<File Name="hgignore.5.html" KeyPath="yes">
<Shortcut Id="hgignore5StartMenu" Directory="ProgramMenuDir"
Name="Mercurial Ignore Files"
Icon="hgIcon.ico" IconIndex="0" Advertise="yes"
/>
</File>
</Component>
<Component Id="doc.hgrc.5.html" Guid="$(var.doc.hgrc.5.html)" Win64='$(var.IsX64)'>
<File Name="hgrc.5.html" KeyPath="yes">
<Shortcut Id="hgrc5StartMenu" Directory="ProgramMenuDir"
Name="Mercurial Configuration Files"
Icon="hgIcon.ico" IconIndex="0" Advertise="yes"
/>
</File>
</Component>
<Component Id="doc.style.css" Guid="$(var.doc.style.css)" Win64='$(var.IsX64)'>
<File Name="style.css" KeyPath="yes" />
</Component>
</Directory>
</DirectoryRef>
</Fragment>
</Wix>