##// 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:

r20315:4dd91c46 stable
r20828:3210b793 default
Show More
guids.wxi
51 lines | 2.4 KiB | text/plain | TextLexer
<Include>
<!-- These are component GUIDs used for Mercurial installers.
YOU MUST CHANGE ALL GUIDs below when copying this file
and replace 'Mercurial' in this notice with the name of
your project. Component GUIDs have global namespace! -->
<!-- contrib.wxs -->
<?define contrib.guid = {F17D27B7-4A6B-4cd2-AE72-FED3CFAA585E} ?>
<?define contrib.vim.guid = {BB04903A-652D-4C4F-9590-2BD07A2304F2} ?>
<!-- dist.wxs -->
<?define dist.guid = {C3B634A4-1B05-4A40-94A9-38EE853CF693} ?>
<!-- doc.wxs -->
<?define doc.hg.1.html.guid = {AAAA3FDA-EDC5-4220-B59D-D342722358A2} ?>
<?define doc.hgignore.5.html.guid = {AA9118C4-F3A0-4429-A5F4-5A1906B2D67F} ?>
<?define doc.hgrc.5.html = {E0CEA1EB-FA01-408c-844B-EE5965165BAE} ?>
<?define doc.style.css = {172F8262-98E0-4711-BD39-4DAE0D77EF05} ?>
<!-- help.wxs -->
<?define helpFolder.guid = {9FA957DB-6DFE-44f2-AD03-293B2791CF17} ?>
<!-- i18n.wxs -->
<?define i18nFolder.guid = {1BF8026D-CF7C-4174-AEE6-D6B7BF119248} ?>
<!-- templates.wxs -->
<?define templates.root.guid = {437FD55C-7756-4EA0-87E5-FDBE75DC8595} ?>
<?define templates.atom.guid = {D30E14A5-8AF0-4268-8B00-00BEE9E09E39} ?>
<?define templates.coal.guid = {B63CCAAB-4EAF-43b4-901E-4BD13F5B78FC} ?>
<?define templates.gitweb.guid = {827334AF-1EFD-421B-962C-5660A068F612} ?>
<?define templates.monoblue.guid = {8060A1E4-BD4C-453E-92CB-9536DC44A9E3} ?>
<?define templates.paper.guid = {61AB1DE9-645F-46ED-8AF8-0CF02267FFBB} ?>
<?define templates.raw.guid = {834DF8D7-9784-43A6-851D-A96CE1B3575B} ?>
<?define templates.rss.guid = {9338FA09-E128-4B1C-B723-1142DBD09E14} ?>
<?define templates.spartan.guid = {80222625-FA8F-44b1-86CE-1781EF375D09} ?>
<?define templates.static.guid = {6B3D7C24-98DA-4B67-9F18-35F77357B0B4} ?>
<!-- mercurial.wxs -->
<?define ProductUpgradeCode = {A1CC6134-E945-4399-BE36-EB0017FDF7CF} ?>
<?define ComponentMainExecutableGUID = {D102B8FA-059B-4ACC-9FA3-8C78C3B58EEF} ?>
<?define ReadMe.guid = {56A8E372-991D-4DCA-B91D-93D775974CF5} ?>
<?define COPYING.guid = {B7801DBA-1C49-4BF4-91AD-33C65F5C7895} ?>
<?define mercurial.rc.guid = {1D5FAEEE-7E6E-43B1-9F7F-802714316B15} ?>
<?define mergetools.rc.guid = {E8A1DC29-FF40-4B5F-BD12-80B9F7BF0CCD} ?>
<?define paths.rc.guid = {F9ADF21D-5F0B-4934-8CD9-14BE63664721} ?>
<?define cacert.pem.guid = {EC1B2630-FE21-46E6-915B-A6545AF703D4} ?>
<?define ProgramMenuDir.guid = {D5A63320-1238-489B-B68B-CF053E9577CA} ?>
</Include>