summaryrefslogtreecommitdiff
path: root/mercurial/help/hgweb.txt
diff options
context:
space:
mode:
Diffstat (limited to 'mercurial/help/hgweb.txt')
-rw-r--r--mercurial/help/hgweb.txt71
1 files changed, 34 insertions, 37 deletions
diff --git a/mercurial/help/hgweb.txt b/mercurial/help/hgweb.txt
index 9ac557e..fa901e6 100644
--- a/mercurial/help/hgweb.txt
+++ b/mercurial/help/hgweb.txt
@@ -1,50 +1,47 @@
Mercurial's internal web server, hgweb, can serve either a single
-repository, or a tree of repositories. In the second case, repository
-paths and global options can be defined using a dedicated
-configuration file common to :hg:`serve`, ``hgweb.wsgi``,
-``hgweb.cgi`` and ``hgweb.fcgi``.
+repository, or a collection of them. In the latter case, a special
+configuration file can be used to specify the repository paths to use
+and global web configuration options.
-This file uses the same syntax as other Mercurial configuration files
-but recognizes only the following sections:
+This file uses the same syntax as other Mercurial configuration files,
+but only the following sections are recognized:
- web
- paths
- collections
-The ``web`` options are thorougly described in :hg:`help config`.
+The ``web`` section can specify all the settings described in the web
+section of the hgrc(5) documentation. See :hg:`help config` for
+information on where to find the manual page.
-The ``paths`` section maps URL paths to paths of repositories in the
-filesystem. hgweb will not expose the filesystem directly - only
-Mercurial repositories can be published and only according to the
-configuration.
-
-The left hand side is the path in the URL. Note that hgweb reserves
-subpaths like ``rev`` or ``file``, try using different names for
-nested repositories to avoid confusing effects.
-
-The right hand side is the path in the filesystem. If the specified
-path ends with ``*`` or ``**`` the filesystem will be searched
-recursively for repositories below that point.
-With ``*`` it will not recurse into the repositories it finds (except for
-``.hg/patches``).
-With ``**`` it will also search inside repository working directories
-and possibly find subrepositories.
-
-In this example::
+The ``paths`` section provides mappings of physical repository
+paths to virtual ones. For instance::
[paths]
- /projects/a = /srv/tmprepos/a
- /projects/b = c:/repos/b
- / = /srv/repos/*
- /user/bob = /home/bob/repos/**
+ projects/a = /foo/bar
+ projects/b = /baz/quux
+ web/root = /real/root/*
+ / = /real/root2/*
+ virtual/root2 = /real/root2/**
- The first two entries make two repositories in different directories
appear under the same directory in the web interface
-- The third entry will publish every Mercurial repository found in
- ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``
- will appear as ``http://server/quux/``
-- The fourth entry will publish both ``http://server/user/bob/quux/``
- and ``http://server/user/bob/quux/testsubrepo/``
-
-The ``collections`` section is deprecated and has been superseeded by
-``paths``.
+- The third entry maps every Mercurial repository found in '/real/root'
+ into 'web/root'. This format is preferred over the [collections] one,
+ since using absolute paths as configuration keys is not supported on every
+ platform (especially on Windows).
+- The fourth entry is a special case mapping all repositories in
+ '/real/root2' in the root of the virtual directory.
+- The fifth entry recursively finds all repositories under the real
+ root, and maps their relative paths under the virtual root.
+
+The ``collections`` section provides mappings of trees of physical
+repositories paths to virtual ones, though the paths syntax is generally
+preferred. For instance::
+
+ [collections]
+ /foo = /foo
+
+Here, the left side will be stripped off all repositories found in the
+right side. Thus ``/foo/bar`` and ``foo/quux/baz`` will be listed as
+``bar`` and ``quux/baz`` respectively.