Mercurial > hg
view tests/dumbhttp.py @ 25758:c5dfa47ad7ee
cmdutil: put recordfunc invocation into wlock scope for consistency
Before this patch, 'recordfunc()' for interactive hunk selection does
below outside wlock scope at 'hg commit -i' and so on:
- backup files, which may be partially changed
- apply selected hunks on files
- restore files from backup-ed ones
These should be executed inside wlock scope for consistency.
To put them into wlock scope without largely changing indents in
'recordfunc()', this patch adds another wrapper function.
This patch is also a preparation for subsequent patch fixing the issue
to correctly recognize partially committed files as "modified".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 08 Jul 2015 17:01:09 +0900 |
parents | 6eab50a34fed |
children | 0bb8c405a7c7 |
line wrap: on
line source
#!/usr/bin/env python """ Small and dumb HTTP server for use in tests. """ from optparse import OptionParser import BaseHTTPServer, SimpleHTTPServer, signal, sys from mercurial import cmdutil class simplehttpservice(object): def __init__(self, host, port): self.address = (host, port) def init(self): self.httpd = BaseHTTPServer.HTTPServer( self.address, SimpleHTTPServer.SimpleHTTPRequestHandler) def run(self): self.httpd.serve_forever() 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') 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') parser.add_option('--daemon-pipefds') (options, args) = parser.parse_args() signal.signal(signal.SIGTERM, lambda x, y: sys.exit(0)) if options.foreground and options.pid: parser.error("options --pid and --foreground are mutually exclusive") opts = {'pid_file': options.pid, 'daemon': not options.foreground, 'daemon_pipefds': options.daemon_pipefds} service = simplehttpservice(options.host, options.port) cmdutil.service(opts, initfn=service.init, runfn=service.run, runargs=[sys.executable, __file__] + sys.argv[1:])