Mercurial > hg > mercurial-crew-with-dirclash
annotate hgweb.cgi @ 5451:0a43875677b1
revlog: break up compression of large deltas
Python's zlib apparently makes an internal copy of strings passed to
compress(). To avoid this, compress strings 1M at a time, then join
them at the end if the result would be smaller than the original.
For initial commits of large but compressible files, this cuts peak
memory usage nearly in half.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 11 Oct 2007 00:46:54 -0500 |
parents | 79279b5583c6 |
children |
rev | line source |
---|---|
202 | 1 #!/usr/bin/env python |
159 | 2 # |
3 # An example CGI script to use hgweb, edit as necessary | |
4 | |
5226
79279b5583c6
cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5197
diff
changeset
|
5 # adjust python path if not a system-wide install: |
79279b5583c6
cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5197
diff
changeset
|
6 #import sys |
79279b5583c6
cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5197
diff
changeset
|
7 #sys.path.insert(0, "/path/to/python/lib") |
79279b5583c6
cgi: sys.path.insert should be before importing mercurial
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5197
diff
changeset
|
8 |
5197
55860a45bbf2
Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3868
diff
changeset
|
9 # enable importing on demand to reduce startup time |
55860a45bbf2
Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3868
diff
changeset
|
10 from mercurial import demandimport; demandimport.enable() |
55860a45bbf2
Enable demandimport only in scripts, not in importable modules (issue605)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3868
diff
changeset
|
11 |
3868
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
12 # send python tracebacks to the browser if an error occurs: |
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
13 import cgitb |
391
5f65a108a559
hgweb: pull cgitb into CGI script example, where it can easily be disabled
mpm@selenic.com
parents:
202
diff
changeset
|
14 cgitb.enable() |
5f65a108a559
hgweb: pull cgitb into CGI script example, where it can easily be disabled
mpm@selenic.com
parents:
202
diff
changeset
|
15 |
3782
713e35dcc321
hgweb: report detected character set
Matt Mackall <mpm@selenic.com>
parents:
2506
diff
changeset
|
16 # If you'd like to serve pages with UTF-8 instead of your default |
713e35dcc321
hgweb: report detected character set
Matt Mackall <mpm@selenic.com>
parents:
2506
diff
changeset
|
17 # locale charset, you can do so by uncommenting the following lines. |
713e35dcc321
hgweb: report detected character set
Matt Mackall <mpm@selenic.com>
parents:
2506
diff
changeset
|
18 # Note that this will cause your .hgrc files to be interpreted in |
713e35dcc321
hgweb: report detected character set
Matt Mackall <mpm@selenic.com>
parents:
2506
diff
changeset
|
19 # UTF-8 and all your repo files to be displayed using UTF-8. |
713e35dcc321
hgweb: report detected character set
Matt Mackall <mpm@selenic.com>
parents:
2506
diff
changeset
|
20 # |
3868
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
21 #import os |
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
22 #os.environ["HGENCODING"] = "UTF-8" |
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
23 |
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
24 from mercurial.hgweb.hgweb_mod import hgweb |
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
25 from mercurial.hgweb.request import wsgiapplication |
6033d9f28052
hgweb.cgi and hgwebdir.cgi fixes/cleanups for user configurable parts:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3782
diff
changeset
|
26 import mercurial.hgweb.wsgicgi as wsgicgi |
3782
713e35dcc321
hgweb: report detected character set
Matt Mackall <mpm@selenic.com>
parents:
2506
diff
changeset
|
27 |
2506
d0db3462d568
This patch make several WSGI related alterations.
Eric Hopper <hopper@omnifarious.org>
parents:
391
diff
changeset
|
28 def make_web_app(): |
d0db3462d568
This patch make several WSGI related alterations.
Eric Hopper <hopper@omnifarious.org>
parents:
391
diff
changeset
|
29 return hgweb("/path/to/repo", "repository name") |
d0db3462d568
This patch make several WSGI related alterations.
Eric Hopper <hopper@omnifarious.org>
parents:
391
diff
changeset
|
30 |
d0db3462d568
This patch make several WSGI related alterations.
Eric Hopper <hopper@omnifarious.org>
parents:
391
diff
changeset
|
31 wsgicgi.launch(wsgiapplication(make_web_app)) |