diff --git a/mercurial/hgweb.py b/mercurial/hgweb.py --- a/mercurial/hgweb.py +++ b/mercurial/hgweb.py @@ -119,7 +119,8 @@ class hgweb: def __init__(self, path, name, templates = ""): self.templates = templates or templatepath() self.reponame = name - self.repo = repository(ui(), path) + self.path = path + self.mtime = -1 self.viewonly = 0 self.filters = { @@ -131,6 +132,11 @@ class hgweb: "firstline": (lambda x: x.splitlines(1)[0]), } + def refresh(self): + s = os.stat(os.path.join(self.path, ".hg", "00changelog.i")) + if s.st_mtime != self.mtime: + self.repo = repository(ui(), self.path) + def date(self, cs): return time.asctime(time.gmtime(float(cs[2].split(' ')[0]))) @@ -566,6 +572,7 @@ class hgweb: # find tag, changeset, file def run(self): + self.refresh() args = cgi.parse() m = os.path.join(self.templates, "map")