Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb.py @ 1418:68f81ba07b2a
Make hgweb work when the repository is empty (no 00changelog.i)
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Thu, 20 Oct 2005 11:41:14 -0700 |
parents | 19d2776f1725 |
children | 56281e086f38 |
comparison
equal
deleted
inserted
replaced
1417:90b62337f8dd | 1418:68f81ba07b2a |
---|---|
60 p = p[:-1] | 60 p = p[:-1] |
61 up = os.path.dirname(p) | 61 up = os.path.dirname(p) |
62 if up == "/": | 62 if up == "/": |
63 return "/" | 63 return "/" |
64 return up + "/" | 64 return up + "/" |
65 | |
66 def get_mtime(repo_path): | |
67 hg_path = os.path.join(repo_path, ".hg") | |
68 cl_path = os.path.join(hg_path, "00changelog.i") | |
69 if os.path.exists(os.path.join(cl_path)): | |
70 return os.stat(cl_path).st_mtime | |
71 else: | |
72 return os.stat(hg_path).st_mtime | |
65 | 73 |
66 class hgrequest: | 74 class hgrequest: |
67 def __init__(self, inp=None, out=None, env=None): | 75 def __init__(self, inp=None, out=None, env=None): |
68 self.inp = inp or sys.stdin | 76 self.inp = inp or sys.stdin |
69 self.out = out or sys.stdout | 77 self.out = out or sys.stdout |
176 self.mtime = -1 | 184 self.mtime = -1 |
177 self.reponame = name | 185 self.reponame = name |
178 self.archives = 'zip', 'gz', 'bz2' | 186 self.archives = 'zip', 'gz', 'bz2' |
179 | 187 |
180 def refresh(self): | 188 def refresh(self): |
181 s = os.stat(os.path.join(self.repo.root, ".hg", "00changelog.i")) | 189 mtime = get_mtime(self.repo.root) |
182 if s.st_mtime != self.mtime: | 190 if mtime != self.mtime: |
183 self.mtime = s.st_mtime | 191 self.mtime = mtime |
184 self.repo = hg.repository(self.repo.ui, self.repo.root) | 192 self.repo = hg.repository(self.repo.ui, self.repo.root) |
185 self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10)) | 193 self.maxchanges = int(self.repo.ui.config("web", "maxchanges", 10)) |
186 self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10)) | 194 self.maxfiles = int(self.repo.ui.config("web", "maxfiles", 10)) |
187 self.allowpull = self.repo.ui.configbool("web", "allowpull", True) | 195 self.allowpull = self.repo.ui.configbool("web", "allowpull", True) |
188 | 196 |
987 | 995 |
988 url = ('/'.join([req.env["REQUEST_URI"].split('?')[0], name]) | 996 url = ('/'.join([req.env["REQUEST_URI"].split('?')[0], name]) |
989 .replace("//", "/")) | 997 .replace("//", "/")) |
990 | 998 |
991 # update time with local timezone | 999 # update time with local timezone |
992 d = (os.stat(os.path.join(path, | 1000 d = (get_mtime(path), util.makedate()[1]) |
993 ".hg", "00changelog.d")).st_mtime, | |
994 util.makedate()[1]) | |
995 | 1001 |
996 yield dict(contact=(get("ui", "username") or # preferred | 1002 yield dict(contact=(get("ui", "username") or # preferred |
997 get("web", "contact") or # deprecated | 1003 get("web", "contact") or # deprecated |
998 get("web", "author", "unknown")), # also | 1004 get("web", "author", "unknown")), # also |
999 name=get("web", "name", name), | 1005 name=get("web", "name", name), |