view contrib/wix/dist.wxs @ 24995:0579b0c2ea2b

tryimportone: use dirstateguard instead of beginparentchange/endparentchange To fix the issue that the recent (in memory) dirstate isn't visible to external process (e.g. "precommit" hook), a subsequent patch makes "localrepository.commit()" invoke "dirstate.write()" in it. This change will make "beginparentchange()" and "endparentchange()" on dirstate in "cmdutil.tryimportone()" meaningless, because: - "dirstate.write()" writes changed data into ".hg/dirstate", but - aborting between "beginparentchange()" and "endparentchange()" doesn't cause any restoring ".hg/dirstate" it just discards changes in memory. This patch uses "dirstateguard" instead of "beginparentchange()" and "endparentchange()" in "cmdutil.tryimportone()" to restore ".hg/dirstate" during a failure even if "dirstate.write()" is executed before a failure. This patch uses "lockmod.release(dsguard)" instead of "dsguard.release()", because processing may be aborted before assignment to "dsguard" , and the "if dsguard" examination for safety is redundant.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 07 May 2015 12:07:11 +0900
parents 59581b667cd7
children 95e042d77a5f
line wrap: on
line source

<?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="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="python27.dll" />
        <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>
    </DirectoryRef>
  </Fragment>

</Wix>