diff --git a/contrib/wix/help.wxs b/contrib/wix/help.wxs
--- a/contrib/wix/help.wxs
+++ b/contrib/wix/help.wxs
@@ -42,6 +42,7 @@
+
diff --git a/mercurial/help.py b/mercurial/help.py
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -192,6 +192,8 @@ internalstable = sorted([
loaddoc('requirements', subdir='internals')),
(['revlogs'], _('Revision Logs'),
loaddoc('revlogs', subdir='internals')),
+ (['wireprotocol'], _('Wire Protocol'),
+ loaddoc('wireprotocol', subdir='internals')),
])
def internalshelp(ui):
diff --git a/mercurial/help/internals/wireprotocol.txt b/mercurial/help/internals/wireprotocol.txt
new file mode 100644
--- /dev/null
+++ b/mercurial/help/internals/wireprotocol.txt
@@ -0,0 +1,11 @@
+The Mercurial wire protocol is a request-response based protocol
+with multiple wire representations.
+
+Each request is modeled as a command name, a dictionary of arguments, and
+optional raw input. Command arguments and their types are intrinsic
+properties of commands. So is the response type of the command. This means
+clients can't always send arbitrary arguments to servers and servers can't
+return multiple response types.
+
+The protocol is synchronous and does not support multiplexing (concurrent
+commands).
diff --git a/tests/test-help.t b/tests/test-help.t
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -933,6 +933,7 @@ internals topic renders index of availab
changegroups Changegroups
requirements Repository Requirements
revlogs Revision Logs
+ wireprotocol Wire Protocol
sub-topics can be accessed
@@ -2895,6 +2896,13 @@ Sub-topic indexes rendered properly
Revision Logs
|
+
+
+ wireprotocol
+
+ |
+ Wire Protocol
+ |