Mercurial > hg-stable
changeset 4079:40c9710e8182
Pass a ui from create_server to hgwebdir and a repo from hgwebdir to hgweb
This allows repo pages to respect hg serve --webdir-conf <file> --style=gitweb
(part of issue253).
Since we're creating a ui object anyway, use it as the parentui of the ui
objects created for every repo entry. This has the unintended side-effect
that --name=foo on the command line will set the name of all repos.
If one of the repos being served has a .hg/hgrc owned by a user that is not
trusted, hg will now print the "Not trusting file..." warning when reading
it. This is consistent with the behaviour from a hg serve from inside the
repo.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Tue, 13 Feb 2007 10:01:44 -0200 |
parents | ff08cebcd116 |
children | ef14fdb675da |
files | mercurial/hgweb/hgwebdir_mod.py mercurial/hgweb/server.py |
diffstat | 2 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/hgwebdir_mod.py Tue Feb 13 10:00:17 2007 -0200 +++ b/mercurial/hgweb/hgwebdir_mod.py Tue Feb 13 10:01:44 2007 -0200 @@ -16,10 +16,11 @@ # This is a stopgap class hgwebdir(object): - def __init__(self, config): + def __init__(self, config, parentui=None): def cleannames(items): return [(name.strip(os.sep), path) for name, path in items] + self.parentui = parentui self.motd = "" self.style = "" self.repos_sorted = ('name', False) @@ -73,6 +74,8 @@ def motd(**map): yield self.motd + parentui = self.parentui or ui.ui(report_untrusted=False) + url = req.env['REQUEST_URI'].split('?')[0] if not url.endswith('/'): url += '/' @@ -111,7 +114,7 @@ rows = [] parity = 0 for name, path in self.repos: - u = ui.ui(report_untrusted=False) + u = ui.ui(parentui=parentui) try: u.readconfig(os.path.join(path, '.hg', 'hgrc')) except IOError: @@ -179,7 +182,8 @@ if real: req.env['REPO_NAME'] = virtual try: - hgweb(real).run_wsgi(req) + repo = hg.repository(parentui, real) + hgweb(repo).run_wsgi(req) except IOError, inst: req.write(tmpl("error", error=inst.strerror)) except hg.RepoError, inst:
--- a/mercurial/hgweb/server.py Tue Feb 13 10:00:17 2007 -0200 +++ b/mercurial/hgweb/server.py Tue Feb 13 10:01:44 2007 -0200 @@ -220,7 +220,7 @@ def make_handler(self): if self.webdir_conf: - hgwebobj = self.webdirmaker(self.webdir_conf) + hgwebobj = self.webdirmaker(self.webdir_conf, ui) elif self.repo is not None: hgwebobj = self.repoviewmaker(repo.__class__(repo.ui, repo.origroot))