help: internals topic for wire protocol
The Mercurial wire protocol is under-documented. This includes a lack
of source docstrings and comments as well as pages on the official
wiki.
This patch adds the beginnings of "internals" documentation on the
wire protocol.
The documentation should have nearly complete coverage on the
lower-level parts of the protocol, such as the different transport
mechanims, how commands and arguments are sent, capabilities, and,
of course, the commands themselves.
As part of writing this documentation, I discovered a number of
deficiencies in the protocol and bugs in the implementation. I've
started sending patches for some of the issues. I hope to send a lot
more.
This patch starts with the scaffolding for a new internals page.
<?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='helpFolder'>
<ComponentRef Id='help.root' />
<ComponentRef Id='help.internals' />
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="helpdir" Name="help" FileSource="$(var.SourceDir)">
<Component Id="help.root" Guid="$(var.help.root.guid)" Win64='$(var.IsX64)'>
<File Name="config.txt" KeyPath="yes" />
<File Name="dates.txt" />
<File Name="diffs.txt" />
<File Name="environment.txt" />
<File Name="extensions.txt" />
<File Name="filesets.txt" />
<File Name="glossary.txt" />
<File Name="hgignore.txt" />
<File Name="hgweb.txt" />
<File Name="merge-tools.txt" />
<File Name="multirevs.txt" />
<File Name="patterns.txt" />
<File Name="phases.txt" />
<File Name="revisions.txt" />
<File Name="revsets.txt" />
<File Name="scripting.txt" />
<File Name="subrepos.txt" />
<File Name="templates.txt" />
<File Name="urls.txt" />
</Component>
<Directory Id="help.internaldir" Name="internals">
<Component Id="help.internals" Guid="$(var.help.internals.guid)" Win64='$(var.IsX64)'>
<File Id="internals.bundles.txt" Name="bundles.txt" KeyPath="yes" />
<File Id="internals.changegroups.txt" Name="changegroups.txt" />
<File Id="internals.requirements.txt" Name="requirements.txt" />
<File Id="internals.revlogs.txt" Name="revlogs.txt" />
<File Id="internals.wireprotocol.txt" Name="wireprotocol.txt" />
</Component>
</Directory>
</Directory>
</DirectoryRef>
</Fragment>
</Wix>