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),