annotate contrib/wix/doc.wxs @ 37337:d257c5f2a940

tests: add test extension implementing custom filelog storage In order to better support partial clones, we'll need alternate repository storage mechanisms that aren't based on revlogs. Today, the interface for repository storage isn't very well defined. And there are various layering violations and assumptions made throughout the code that storage is backed by revlogs. In order to support alternate storage mechanisms, we'll need to formally declare and adhere to interfaces for storage. This will be a long, arduous process. This commit creates an extension that implements non-revlog storage for files. It defines a custom type that quacks like the existing revlog/filelog API but isn't backed by a revlog. The backing storage is - for simplicity reasons - a CBOR index and per-node files representing fulltext data. The localrepository class is modified so file(f) returns instances of this class instead of filelog instances. The purpose of this extension is to tease out what the actual filelog interface is - based on running the test harness - so we can formalize that interface and then implement a *real* alternate storage backend. Using `run-tests.py --extra-config-opt` to run the test harness with this extension enabled yields 83 failures out of 634 ran tests. The most common test failures are due to: * Issues with `hg verify` * LFS and largefiles (probably flags processing related) * Narrow. * Any test touching or inspecting individual filelog paths. * help and error output that is confused by the presence of an extension. * `hg debug*` commands doing low-level, revlog-y things. An 88% pass rate is pretty good for an initial implementation if you ask me! There is a bit of duplicate code in the new extension. That's by design: a point of this code is to tease out dependencies on revlog. That being said, there is opportunity to consolidate code by moving things out of the revlog API. For example, DAG traversal operations don't necessarily need to be implemented at the storage level. (Although for performance reasons they probably do.) Once we have a more well-defined interface, we could probably define the default implementations in terms of the base interface, pull those in via class inheritance, and have implementations override with faster versions if they so choose. (Or something like that.) But for now, the duplicate code should be acceptable. Differential Revision: https://phab.mercurial-scm.org/D3029
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 04 Apr 2018 11:37:07 -0700
parents bd9bc4123920
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10513
47838dee7d60 contrib/wix: switch *.wxs files to LF eol
Adrian Buehlmann <adrian@cadifra.com>
parents: 10502
diff changeset
1 <?xml version="1.0" encoding="utf-8"?>
47838dee7d60 contrib/wix: switch *.wxs files to LF eol
Adrian Buehlmann <adrian@cadifra.com>
parents: 10502
diff changeset
2 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
10828
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
3
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
4 <?include guids.wxi ?>
13042
bd9bc4123920 wix: add support for x64 native MSI packages
Steve Borho <steve@borho.org>
parents: 10930
diff changeset
5 <?include defines.wxi ?>
10828
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
6
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
7 <Fragment>
10930
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
8 <ComponentGroup Id="docFolder">
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
9 <ComponentRef Id="doc.hg.1.html" />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
10 <ComponentRef Id="doc.hgignore.5.html" />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
11 <ComponentRef Id="doc.hgrc.5.html" />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
12 <ComponentRef Id="doc.style.css" />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
13 </ComponentGroup>
10828
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
14 </Fragment>
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
15
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
16 <Fragment>
10930
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
17 <DirectoryRef Id="INSTALLDIR">
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
18 <Directory Id="docdir" Name="doc" FileSource="$(var.SourceDir)">
13042
bd9bc4123920 wix: add support for x64 native MSI packages
Steve Borho <steve@borho.org>
parents: 10930
diff changeset
19 <Component Id="doc.hg.1.html" Guid="$(var.doc.hg.1.html.guid)" Win64='$(var.IsX64)'>
10930
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
20 <File Name="hg.1.html" KeyPath="yes">
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
21 <Shortcut Id="hg1StartMenu" Directory="ProgramMenuDir"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
22 Name="Mercurial Command Reference"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
23 Icon="hgIcon.ico" IconIndex="0" Advertise="yes"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
24 />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
25 </File>
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
26 </Component>
13042
bd9bc4123920 wix: add support for x64 native MSI packages
Steve Borho <steve@borho.org>
parents: 10930
diff changeset
27 <Component Id="doc.hgignore.5.html" Guid="$(var.doc.hgignore.5.html.guid)" Win64='$(var.IsX64)'>
10930
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
28 <File Name="hgignore.5.html" KeyPath="yes">
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
29 <Shortcut Id="hgignore5StartMenu" Directory="ProgramMenuDir"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
30 Name="Mercurial Ignore Files"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
31 Icon="hgIcon.ico" IconIndex="0" Advertise="yes"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
32 />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
33 </File>
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
34 </Component>
13042
bd9bc4123920 wix: add support for x64 native MSI packages
Steve Borho <steve@borho.org>
parents: 10930
diff changeset
35 <Component Id="doc.hgrc.5.html" Guid="$(var.doc.hgrc.5.html)" Win64='$(var.IsX64)'>
10930
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
36 <File Name="hgrc.5.html" KeyPath="yes">
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
37 <Shortcut Id="hgrc5StartMenu" Directory="ProgramMenuDir"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
38 Name="Mercurial Configuration Files"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
39 Icon="hgIcon.ico" IconIndex="0" Advertise="yes"
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
40 />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
41 </File>
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
42 </Component>
13042
bd9bc4123920 wix: add support for x64 native MSI packages
Steve Borho <steve@borho.org>
parents: 10930
diff changeset
43 <Component Id="doc.style.css" Guid="$(var.doc.style.css)" Win64='$(var.IsX64)'>
10930
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
44 <File Name="style.css" KeyPath="yes" />
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
45 </Component>
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
46 </Directory>
230ab9a23594 wix updates
Adrian Buehlmann <adrian@cadifra.com>
parents: 10828
diff changeset
47 </DirectoryRef>
10828
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
48 </Fragment>
1aa9464ce9ae wix: refactor and new guids.wxi
Adrian Buehlmann <adrian@cadifra.com>
parents: 10513
diff changeset
49
10513
47838dee7d60 contrib/wix: switch *.wxs files to LF eol
Adrian Buehlmann <adrian@cadifra.com>
parents: 10502
diff changeset
50 </Wix>