##// END OF EJS Templates
exchange: move disabling of rev-branch-cache bundle part out of narrow...
exchange: move disabling of rev-branch-cache bundle part out of narrow I'm attempting to refactor changegroup code in order to better support alternate storage backends. The narrow extension is performing a lot of monkeypatching to this code and it is making it difficult to reason about how everything works. I'm reasonably certain I would be unable to abstract storage without requiring extensive rework of narrow. I believe it is less effort to move narrow code into core so it can be accounted for when changegroup code is refactored. So I'll be doing that. The first part of this is integrating the disabling of the cache:rev-branch-cache bundle2 part into core. This doesn't seem like it is related to changegroup, but narrow's modifications to changegroup are invasive and also require taking its code for bundle generation and exchange into core in order for the changegroup code to work. Differential Revision: https://phab.mercurial-scm.org/D4007

File last commit:

r38612:e46c3b6a default
r38813:ab765bc4 default
Show More
dumbhttp.py
77 lines | 2.6 KiB | text/x-python | PythonLexer
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 #!/usr/bin/env python
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 from __future__ import absolute_import
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 """
Small and dumb HTTP server for use in tests.
"""
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 import optparse
Jun Wu
dumbhttp: use IPv6 if HGIPV6 is set to 1...
r31004 import os
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 import signal
Jun Wu
dumbhttp: use IPv6 if HGIPV6 is set to 1...
r31004 import socket
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 import sys
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 from mercurial import (
Yuya Nishihara
py3: fix dumbhttp.py to convert --daemon-postexec arguments back to bytes
r38612 encoding,
Pulkit Goyal
py3: make values bytes before passing into server.runservice()...
r37690 pycompat,
Yuya Nishihara
server: move cmdutil.service() to new module (API)...
r30506 server,
Pulkit Goyal
py3: conditionalize BaseHTTPServer, SimpleHTTPServer and CGIHTTPServer import...
r29566 util,
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 )
Pulkit Goyal
py3: conditionalize BaseHTTPServer, SimpleHTTPServer and CGIHTTPServer import...
r29566 httpserver = util.httpserver
Gregory Szorc
tests/dumbhttp: use absolute_import
r27282 OptionParser = optparse.OptionParser
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959
Jun Wu
dumbhttp: use IPv6 if HGIPV6 is set to 1...
r31004 if os.environ.get('HGIPV6', '0') == '1':
class simplehttpserver(httpserver.httpserver):
address_family = socket.AF_INET6
else:
simplehttpserver = httpserver.httpserver
Yuya Nishihara
test-static-http: flush access log per request...
r34945 class _httprequesthandler(httpserver.simplehttprequesthandler):
def log_message(self, format, *args):
httpserver.simplehttprequesthandler.log_message(self, format, *args)
sys.stderr.flush()
Yuya Nishihara
tests: have dumbhttp.py use cmdutil.service() to wait for child to listen()...
r23136 class simplehttpservice(object):
def __init__(self, host, port):
self.address = (host, port)
def init(self):
Yuya Nishihara
test-static-http: flush access log per request...
r34945 self.httpd = simplehttpserver(self.address, _httprequesthandler)
Yuya Nishihara
tests: have dumbhttp.py use cmdutil.service() to wait for child to listen()...
r23136 def run(self):
self.httpd.serve_forever()
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('-p', '--port', dest='port', type='int', default=8000,
help='TCP port to listen on', metavar='PORT')
parser.add_option('-H', '--host', dest='host', default='localhost',
help='hostname or IP to listen on', metavar='HOST')
Yuya Nishihara
test-static-http: show all files accessed over HTTP...
r34926 parser.add_option('--logfile', help='file name of access/error log')
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 parser.add_option('--pid', dest='pid',
help='file name where the PID of the server is stored')
parser.add_option('-f', '--foreground', dest='foreground',
action='store_true',
help='do not start the HTTP server in the background')
Jun Wu
serve: accept multiple values for --daemon-postexec...
r28451 parser.add_option('--daemon-postexec', action='append')
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959
(options, args) = parser.parse_args()
signal.signal(signal.SIGTERM, lambda x, y: sys.exit(0))
Yuya Nishihara
test-static-http: show all files accessed over HTTP...
r34926 if options.foreground and options.logfile:
parser.error("options --logfile and --foreground are mutually "
"exclusive")
Mike Hommey
tests: pull common http server setup out of individual tests...
r22959 if options.foreground and options.pid:
parser.error("options --pid and --foreground are mutually exclusive")
Pulkit Goyal
py3: make values bytes before passing into server.runservice()...
r37690 opts = {b'pid_file': options.pid,
b'daemon': not options.foreground,
Yuya Nishihara
py3: fix dumbhttp.py to convert --daemon-postexec arguments back to bytes
r38612 b'daemon_postexec': pycompat.rapply(encoding.strtolocal,
options.daemon_postexec)}
Yuya Nishihara
tests: have dumbhttp.py use cmdutil.service() to wait for child to listen()...
r23136 service = simplehttpservice(options.host, options.port)
Pulkit Goyal
py3: make values bytes before passing into server.runservice()...
r37690 runargs = [sys.executable, __file__] + sys.argv[1:]
runargs = [pycompat.fsencode(a) for a in runargs]
Yuya Nishihara
server: move cmdutil.service() to new module (API)...
r30506 server.runservice(opts, initfn=service.init, runfn=service.run,
Yuya Nishihara
test-static-http: show all files accessed over HTTP...
r34926 logfile=options.logfile,
Pulkit Goyal
py3: make values bytes before passing into server.runservice()...
r37690 runargs=runargs)