contrib/wix/dist.wxs
author Durham Goode <durham@fb.com>
Thu, 04 Feb 2016 15:38:04 -0800
changeset 27984 e60e13a86529
parent 25409 95e042d77a5f
child 32128 5e1a91f693f0
child 32406 a9c71d578a1c
permissions -rw-r--r--
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>