##// END OF EJS Templates
verify: replace _validpath() by matcher...
verify: replace _validpath() by matcher The verifier calls out to _validpath() to check if it should verify that path and the narrowhg extension overrides _validpath() to tell the verifier to skip that path. In treemanifest repos, the verifier calls the same method to check if it should visit a directory. However, the decision to visit a directory is different from the condition that it's a matching path, and narrowhg was working around it by returning True from its _validpath() override if *either* was true. Similar to how one can do "hg files -I foo/bar/ -X foo/" (making the include pointless), narrowhg can be configured to track the same paths. In that case match("foo/bar/baz") would be false, but match.visitdir("foo/bar/baz") turns out to be true, causing verify to fail. This may seem like a bug in visitdir(), but it's explicitly documented to be undefined for subdirectories of excluded directories. When using treemanifests, the walk would not descend into foo/, so verification would pass. However, when using flat manifests, there is no recursive directory walk and the file path "foo/bar/baz" would be passed to _validpath() without "foo/" (actually without the slash) being passed first. As explained above, _validpath() would return true for the file path and "hg verify" would fail. Replacing the _validpath() method by a matcher seems like the obvious fix. Narrowhg can then pass in its own matcher and not have to conflate the two matching functions (for dirs and files). I think it also makes the code clearer.

File last commit:

r13042:bd9bc412 stable
r30866:5249b647 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>