annotate mercurial/helptext/hgweb.txt @ 48390:322525db4c98

status: use filesystem time boundary to invalidate racy mtime We record the filesystem time at the start of the status walk and use that as a boundary to detect files that might be modified during (or right after) the status run without the mtime allowing that edition to be detected. We currently do this at a second precision. In a later patch, we will use nanosecond precision when available. To cope with "broken" time on the file system where file could be in the future, we also keep mtime for file over one day in the future. See inline comment for details. Large file tests get a bit more confused as we reduce the odds for race condition. As a "side effect", the win32text extension is happy again. Differential Revision: https://phab.mercurial-scm.org/D11794
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 18 Nov 2021 13:12:40 +0100
parents fe0daceb51d0
children 51057ab0dffa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
1 Mercurial's internal web server, hgweb, can serve either a single
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
2 repository, or a tree of repositories. In the second case, repository
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
3 paths and global options can be defined using a dedicated
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
4 configuration file common to :hg:`serve`, ``hgweb.wsgi``,
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
5 ``hgweb.cgi`` and ``hgweb.fcgi``.
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
6
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
7 This file uses the same syntax as other Mercurial configuration files
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
8 but recognizes only the following sections:
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
9
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
10 - web
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
11 - paths
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
12 - collections
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
13
17424
e7cfe3587ea4 fix trivial spelling errors
Mads Kiilerich <mads@kiilerich.com>
parents: 17333
diff changeset
14 The ``web`` options are thoroughly described in :hg:`help config`.
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
15
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
16 The ``paths`` section maps URL paths to paths of repositories in the
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
17 filesystem. hgweb will not expose the filesystem directly - only
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
18 Mercurial repositories can be published and only according to the
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
19 configuration.
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
20
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
21 The left hand side is the path in the URL. Note that hgweb reserves
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
22 subpaths like ``rev`` or ``file``, try using different names for
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
23 nested repositories to avoid confusing effects.
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
24
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
25 The right hand side is the path in the filesystem. If the specified
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
26 path ends with ``*`` or ``**`` the filesystem will be searched
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
27 recursively for repositories below that point.
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
28 With ``*`` it will not recurse into the repositories it finds (except for
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
29 ``.hg/patches``).
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
30 With ``**`` it will also search inside repository working directories
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
31 and possibly find subrepositories.
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
32
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
33 In this example::
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
34
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
35 [paths]
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
36 /projects/a = /srv/tmprepos/a
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
37 /projects/b = c:/repos/b
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
38 / = /srv/repos/*
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
39 /user/bob = /home/bob/repos/**
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
40
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
41 - The first two entries make two repositories in different directories
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
42 appear under the same directory in the web interface
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
43 - The third entry will publish every Mercurial repository found in
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
44 ``/srv/repos/``, for instance the repository ``/srv/repos/quux/``
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
45 will appear as ``http://server/quux/``
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
46 - The fourth entry will publish both ``http://server/user/bob/quux/``
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
47 and ``http://server/user/bob/quux/testsubrepo/``
10999
38182ed043b7 help: add some help for hgweb.config files
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
48
17333
ba36e771f268 help/hgweb: fix spelling error
Javi Merino <cibervicho@gmail.com>
parents: 17104
diff changeset
49 The ``collections`` section is deprecated and has been superseded by
17104
5a9acb0b2086 help: improve hgweb help
Mads Kiilerich <mads@kiilerich.com>
parents: 13839
diff changeset
50 ``paths``.
24079
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
51
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
52 URLs and Common Arguments
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
53 =========================
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
54
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
55 URLs under each repository have the form ``/{command}[/{arguments}]``
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
56 where ``{command}`` represents the name of a command or handler and
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
57 ``{arguments}`` represents any number of additional URL parameters
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
58 to that command.
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
59
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
60 The web server has a default style associated with it. Styles map to
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
61 a collection of named templates. Each template is used to render a
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
62 specific piece of data, such as a changeset or diff.
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
63
43886
fe0daceb51d0 hgweb: fix error in docstring
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 43632
diff changeset
64 The style for the current request can be overridden two ways. First,
24079
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
65 if ``{command}`` contains a hyphen (``-``), the text before the hyphen
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
66 defines the style. For example, ``/atom-log`` will render the ``log``
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
67 command handler with the ``atom`` style. The second way to set the
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
68 style is with the ``style`` query string argument. For example,
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
69 ``/log?style=atom``. The hyphenated URL parameter is preferred.
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
70
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
71 Not all templates are available for all styles. Attempting to use
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
72 a style that doesn't have all templates defined may result in an error
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
73 rendering the page.
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
74
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
75 Many commands take a ``{revision}`` URL parameter. This defines the
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
76 changeset to operate on. This is commonly specified as the short,
26781
1aee2ab0f902 spelling: trivial spell checking
Mads Kiilerich <madski@unity3d.com>
parents: 24080
diff changeset
77 12 digit hexadecimal abbreviation for the full 40 character unique
24079
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
78 revision identifier. However, any value described by
afe03a616525 help.hgweb: add a section describing URLs and common parameters
Gregory Szorc <gregory.szorc@gmail.com>
parents: 17424
diff changeset
79 :hg:`help revisions` typically works.
24080
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
80
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
81 Commands and URLs
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
82 =================
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
83
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
84 The following web commands and their URLs are available:
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
85
a3f2ea1d4943 help: add web commands to help documentation
Gregory Szorc <gregory.szorc@gmail.com>
parents: 24079
diff changeset
86 .. webcommandsmarker