contrib/hgweb.fcgi
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 13 Nov 2024 13:33:36 +0100
branchstable
changeset 52245 d57d1606049c
parent 50734 d5cd1fd690f3
permissions -rwxr-xr-x
clone: properly exclude rev-branch-cache from post clone cache warming When adding "CACHE_REV_BRANCH" to "CACHES_ALL" in e51161b12c7e, I did not expected it to impact the clone steps. However the "CACHES_POST_CLONE" set is created rather creatively. (we should fix that, but not on stable) The benchmark caught a quite significant slowdown one hardlink and ssh-stream clones. Such slow down can be reduced to around ~5% by fully warming the cache before the clone. However keeping this expensive step away from the clone operation fully fix the slowdown and preserve the initial intend. Example slowdow for hardlink clone ### benchmark.name = hg.command.clone # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.explicit-rev = none # benchmark.variants.issue6528 = default # benchmark.variants.protocol = local-hardlink # benchmark.variants.pulled-delta-reuse-policy = default # benchmark.variants.resource-usage = default # benchmark.variants.validate = default ## data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog 6.8.2: 19.799752 6.9rc0: 29.017493 (+46.55%, +9.22) after: 19.929341 ## data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog 6.8.2: 0.468020 6.9rc0: 1.701294 (+263.51%, +1.23) after: 0.471934 ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog 6.8.2: 2.397564 6.9rc0: 5.666641 (+137.41%, +3.28) after: 2.428085
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45830
c102b704edb5 global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents: 45398
diff changeset
     1
#!/usr/bin/env python3
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     2
#
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
     3
# An example FastCGI script for use with flup, edit as necessary
4391
722417b3d7fa Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff changeset
     4
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
     5
# Path to repo or hgweb config to serve (see 'hg help hgweb')
45398
d58a205d0672 hgweb: compatibility of hgweb.cgi template with Python 3
Harald Klimach <harald@klimachs.de>
parents: 43659
diff changeset
     6
config = b"/path/to/repo/or/config"
5244
79279b5583c6 cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5197
diff changeset
     7
15475
85cba926cb59 hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents: 11002
diff changeset
     8
# Uncomment and adjust if Mercurial is not installed system-wide
85cba926cb59 hgweb: add hint about finding library path with debuginstall
Matt Mackall <mpm@selenic.com>
parents: 11002
diff changeset
     9
# (consult "installed modules" path from 'hg debuginstall'):
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
    10
# import sys; sys.path.insert(0, "/path/to/python/lib")
5197
55860a45bbf2 Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4391
diff changeset
    11
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
    12
from mercurial import demandimport
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
    13
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
    14
demandimport.enable()
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
    15
from mercurial.hgweb import hgweb
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
    16
from flup.server.fcgi import WSGIServer
43659
99e231afc29c black: blacken scripts
Gregory Szorc <gregory.szorc@gmail.com>
parents: 15475
diff changeset
    17
11002
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
    18
application = hgweb(config)
b1739ebb9f3f hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents: 7799
diff changeset
    19
WSGIServer(application).run()