# HG changeset patch # User Bryan O'Sullivan # Date 1124397135 28800 # Node ID f15901d053e1f3574c7469159cdf9afc54053431 # Parent 1300271ba8dee502315bb8a3391e57f33c7f371f# Parent 41ca6bf197352df5fffa7cc355448e76b3aed011 Merge with MPM. diff -r 41ca6bf19735 -r f15901d053e1 contrib/bash_completion --- a/contrib/bash_completion Thu Aug 18 12:27:57 2005 -0800 +++ b/contrib/bash_completion Thu Aug 18 12:32:15 2005 -0800 @@ -19,6 +19,12 @@ COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$paths" -- "$cur" )) } +_hg_status() +{ + local files="$( hg status -$1 | cut -b 3- )" + COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$files" -- "$cur" )) +} + _hg_tags() { local tags="$(hg tags | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')" @@ -104,6 +110,24 @@ paths) _hg_paths ;; + add) + _hg_status "u" + ;; + commit) + _hg_status "mra" + ;; + remove) + _hg_status "r" + ;; + forget) + _hg_status "a" + ;; + diff) + _hg_status "mra" + ;; + revert) + _hg_status "mra" + ;; clone) local count=$(_hg_count_non_option) if [ $count = 1 ]; then @@ -126,4 +150,4 @@ } -complete -o filenames -F _hg hg +complete -o default -F _hg hg diff -r 41ca6bf19735 -r f15901d053e1 contrib/mercurial.el diff -r 41ca6bf19735 -r f15901d053e1 doc/hg.1.txt --- a/doc/hg.1.txt Thu Aug 18 12:27:57 2005 -0800 +++ b/doc/hg.1.txt Thu Aug 18 12:32:15 2005 -0800 @@ -203,6 +203,8 @@ Currently only local repositories are supported. + aliases: in + init [dest]:: Initialize a new repository in the given directory. If the given directory does not exist, it is created. @@ -262,6 +264,8 @@ default push repo. These are the changesets that would be pushed if a push was requested. + aliases: out + parents:: Print the working directory's parent revisions. diff -r 41ca6bf19735 -r f15901d053e1 doc/hgrc.5.txt --- a/doc/hgrc.5.txt Thu Aug 18 12:27:57 2005 -0800 +++ b/doc/hgrc.5.txt Thu Aug 18 12:32:15 2005 -0800 @@ -110,6 +110,24 @@ verbose;; Increase the amount of output printed. True or False. Default is False. +web:: + Web interface configuration. + name;; + Repository name to use in the web interface. Default is current + working directory. + address;; + Interface address to bind to. Default is all. + port;; + Port to listen on. Default is 8000. + ipv6;; + Whether to use IPv6. Default is false. + accesslog;; + Where to output the access log. Default is stdout. + errorlog;; + Where to output the error log. Default is stderr. + templates;; + Where to find the HTML templates. Default is install path. + AUTHOR ------ Bryan O'Sullivan . diff -r 41ca6bf19735 -r f15901d053e1 mercurial/commands.py --- a/mercurial/commands.py Thu Aug 18 12:27:57 2005 -0800 +++ b/mercurial/commands.py Thu Aug 18 12:32:15 2005 -0800 @@ -1087,16 +1087,9 @@ r = repo.addchangegroup(fin) respond("") - def openlog(opt, default): - if opts[opt] and opts[opt] != '-': - return open(opts[opt], 'w') - else: - return default - httpd = hgweb.create_server(repo.root, opts["name"], opts["templates"], opts["address"], opts["port"], opts["ipv6"], - openlog('accesslog', sys.stdout), - openlog('errorlog', sys.stderr)) + opts['accesslog'], opts['errorlog']) if ui.verbose: addr, port = httpd.socket.getsockname() if addr == '0.0.0.0': @@ -1319,7 +1312,7 @@ [('p', 'strip', 1, 'path strip'), ('b', 'base', "", 'base path')], "hg import [-p NUM] [-b BASE] PATCH..."), - "incoming": (incoming, [], 'hg incoming [SOURCE]'), + "incoming|in": (incoming, [], 'hg incoming [SOURCE]'), "^init": (init, [], 'hg init [DEST]'), "locate": (locate, @@ -1335,7 +1328,7 @@ ('p', 'patch', None, 'show patch')], 'hg log [-r REV1 [-r REV2]] [-p] [FILE]'), "manifest": (manifest, [], 'hg manifest [REV]'), - "outgoing": (outgoing, [], 'hg outgoing [DEST]'), + "outgoing|out": (outgoing, [], 'hg outgoing [DEST]'), "parents": (parents, [], 'hg parents [REV]'), "paths": (paths, [], 'hg paths [NAME]'), "^pull": @@ -1368,9 +1361,9 @@ (serve, [('A', 'accesslog', '', 'access log file'), ('E', 'errorlog', '', 'error log file'), - ('p', 'port', 8000, 'listen port'), + ('p', 'port', 0, 'listen port'), ('a', 'address', '', 'interface address'), - ('n', 'name', os.getcwd(), 'repository name'), + ('n', 'name', "", 'repository name'), ('', 'stdio', None, 'for remote clients'), ('t', 'templates', "", 'template map'), ('6', 'ipv6', None, 'use IPv6 in addition to IPv4')], diff -r 41ca6bf19735 -r f15901d053e1 mercurial/hgweb.py --- a/mercurial/hgweb.py Thu Aug 18 12:27:57 2005 -0800 +++ b/mercurial/hgweb.py Thu Aug 18 12:32:15 2005 -0800 @@ -119,7 +119,7 @@ maxfiles = 10 def __init__(self, path, name, templates = ""): - self.templates = templates or templatepath() + self.templates = templates self.reponame = name self.path = path self.mtime = -1 @@ -603,7 +603,9 @@ self.refresh() args = cgi.parse() - m = os.path.join(self.templates, "map") + t = self.templates or self.repo.ui.config("web", "templates", + templatepath()) + m = os.path.join(t, "map") if args.has_key('style'): b = os.path.basename("map-" + args['style'][0]) p = os.path.join(self.templates, b) @@ -615,16 +617,18 @@ if "?" in uri: uri = uri.split("?")[0] url = "http://%s%s%s" % (os.environ["SERVER_NAME"], port, uri) + name = self.reponame or self.repo.ui.config("web", "name", os.getcwd()) + self.t = templater(m, self.filters, {"url":url, - "repo":self.reponame, + "repo":name, "header":header, "footer":footer, }) if not args.has_key('cmd'): args['cmd'] = [self.t.cache['default'],] - + if args['cmd'][0] == 'changelog': c = self.repo.changelog.count() - 1 hi = c @@ -705,6 +709,25 @@ def create_server(path, name, templates, address, port, use_ipv6 = False, accesslog = sys.stdout, errorlog = sys.stderr): + def openlog(opt, default): + if opt and opt != '-': + return open(opt, 'w') + return default + + u = ui() + repo = repository(u, path) + if not address: + address = u.config("web", "address", "") + if not port: + port = int(u.config("web", "port", 8000)) + if not use_ipv6: + use_ipv6 = u.configbool("web", "ipv6") + + accesslog = openlog(accesslog or u.config("web", "accesslog", "-"), + sys.stdout) + errorlog = openlog(errorlog or u.config("web", "errorlog", "-"), + sys.stderr) + import BaseHTTPServer class IPv6HTTPServer(BaseHTTPServer.HTTPServer): @@ -720,7 +743,7 @@ errorlog.write("%s - - [%s] %s\n" % (self.address_string(), self.log_date_time_string(), format % args)) - + def log_message(self, format, *args): accesslog.write("%s - - [%s] %s\n" % (self.address_string(), self.log_date_time_string(), diff -r 41ca6bf19735 -r f15901d053e1 tests/test-remove --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-remove Thu Aug 18 12:32:15 2005 -0800 @@ -0,0 +1,13 @@ +#!/bin/sh + +hg init a +cd a +echo a > foo +hg add foo +hg commit -m 1 -d "0 0" +rm foo +hg remove foo +hg commit -m 2 -d "0 0" + +cd .. +hg clone a b