Mercurial > hg
annotate contrib/hgweb.fcgi @ 30763:a520aefb96f1
httppeer: advertise and support application/mercurial-0.2
Now that servers expose a capability indicating they support
application/mercurial-0.2 and compression, clients can key off
this to say they support responses that are compressed with
various compression formats.
After this commit, the HTTP wire protocol client now sends an
"X-HgProto-<N>" request header indicating its support for
"application/mercurial-0.2" media type and various compression
formats.
This commit also implements support for handling
"application/mercurial-0.2" responses. It simply reads the header
compression engine identifier then routes the remainder of the
response to the appropriate decompressor.
There were some test changes, but only to logging. That points to
an obvious gap in our test coverage. This will be addressed in a
subsequent commit once server support is in place (it is hard to
test without server support).
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 24 Dec 2016 15:22:18 -0700 |
parents | 85cba926cb59 |
children | 99e231afc29c |
rev | line source |
---|---|
4391
722417b3d7fa
Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
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') |
b1739ebb9f3f
hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents:
7799
diff
changeset
|
6 config = "/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'): |
11002
b1739ebb9f3f
hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents:
7799
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 |
6085
e1f11b8a1e9e
hgweb: disable cgitb by default in hgwebdir.fcgi too
Maxim Dounin <mdounin@mdounin.ru>
parents:
5995
diff
changeset
|
12 # Uncomment to send python tracebacks to the browser if an error occurs: |
11002
b1739ebb9f3f
hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents:
7799
diff
changeset
|
13 #import cgitb; cgitb.enable() |
4391
722417b3d7fa
Add hgwebdir.fcgi to contrib
Michael Gebetsroither <michael.geb@gmx.at>
parents:
diff
changeset
|
14 |
11002
b1739ebb9f3f
hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents:
7799
diff
changeset
|
15 from mercurial import demandimport; demandimport.enable() |
b1739ebb9f3f
hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents:
7799
diff
changeset
|
16 from mercurial.hgweb import hgweb |
b1739ebb9f3f
hgweb: synchronize fcgi and wsgi scripts
Matt Mackall <mpm@selenic.com>
parents:
7799
diff
changeset
|
17 from flup.server.fcgi import WSGIServer |
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() |