Mercurial > hg
changeset 22087:af62f0280a76 stable
hgweb: avoid config object race with hgwebdir (issue4326)
Turns out hgwebdir passes full repo objects to each hgweb request
instance, but with a shared baseui. We explicitly break the sharing.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 10 Aug 2014 13:53:36 -0500 |
parents | 68f2f8bfe9ae |
children | a82c5975095d 1e392c63fb76 |
files | mercurial/hgweb/hgweb_mod.py mercurial/hgweb/hgwebdir_mod.py |
diffstat | 2 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/hgweb_mod.py Sat Aug 09 16:15:52 2014 -0500 +++ b/mercurial/hgweb/hgweb_mod.py Sun Aug 10 13:53:36 2014 -0500 @@ -61,6 +61,7 @@ u = ui.ui() r = hg.repository(u, repo) else: + # we trust caller to give us a private copy r = repo r = self._getview(r)
--- a/mercurial/hgweb/hgwebdir_mod.py Sat Aug 09 16:15:52 2014 -0500 +++ b/mercurial/hgweb/hgwebdir_mod.py Sun Aug 10 13:53:36 2014 -0500 @@ -214,7 +214,8 @@ if real: req.env['REPO_NAME'] = virtualrepo try: - repo = hg.repository(self.ui, real) + # ensure caller gets private copy of ui + repo = hg.repository(self.ui.copy(), real) return hgweb(repo).run_wsgi(req) except IOError, inst: msg = inst.strerror