# HG changeset patch # User Vincent Wagelaar # Date 1125431924 -7200 # Node ID 4f5001f5b4c3e86d8778452277d88007cf461d60 # Parent fe3eb1628c40751daba5d549b47a496dedbb5f38 Make sure the repository names don't have slashes at the at or else in some cases env[path_info] will not find an defined repository. REQUEST_URI can contain a query_string appending the repository name would lead to corrupt urls. diff -r fe3eb1628c40 -r 4f5001f5b4c3 mercurial/hgweb.py --- a/mercurial/hgweb.py Tue Aug 30 18:23:39 2005 +0200 +++ b/mercurial/hgweb.py Tue Aug 30 21:58:44 2005 +0200 @@ -927,15 +927,18 @@ # This is a stopgap class hgwebdir: def __init__(self, config): + def cleannames(items): + return [(name.strip('/'), path) for name, path in items] + if type(config) == type([]): - self.repos = config + self.repos = cleannames(config) elif type(config) == type({}): - self.repos = config.items() + self.repos = cleannames(config.items()) self.repos.sort() else: cp = ConfigParser.SafeConfigParser() cp.read(config) - self.repos = cp.items("paths") + self.repos = cleannames(cp.items("paths")) self.repos.sort() def run(self, req=hgrequest()): @@ -956,7 +959,7 @@ u.readconfig(file(os.path.join(path, '.hg', 'hgrc'))) get = u.config - url = ('/'.join([req.env["REQUEST_URI"], name]) + url = ('/'.join([req.env["REQUEST_URI"].split('?')[0], name]) .replace("//", "/")) yield dict(contact=get("web", "contact") or