comparison mercurial/hgweb/hgweb_mod.py @ 26167:7187f6e923d5

merge with stable
author Matt Mackall <mpm@selenic.com>
date Thu, 03 Sep 2015 18:32:17 -0500
parents e037fd28c8bb ee31ede3afb8
children bf1b24785f13
comparison
equal deleted inserted replaced
26166:bb6936bec727 26167:7187f6e923d5
199 else: 199 else:
200 return repo.filtered('served') 200 return repo.filtered('served')
201 201
202 def refresh(self): 202 def refresh(self):
203 repostate = [] 203 repostate = []
204 mtime = 0
204 # file of interrests mtime and size 205 # file of interrests mtime and size
205 for meth, fname in foi: 206 for meth, fname in foi:
206 prefix = getattr(self.repo, meth) 207 prefix = getattr(self.repo, meth)
207 st = get_stat(prefix, fname) 208 st = get_stat(prefix, fname)
208 repostate.append((st.st_mtime, st.st_size)) 209 repostate.append((st.st_mtime, st.st_size))
210 mtime = max(mtime, st.st_mtime)
209 repostate = tuple(repostate) 211 repostate = tuple(repostate)
210 # we need to compare file size in addition to mtime to catch 212 # we need to compare file size in addition to mtime to catch
211 # changes made less than a second ago 213 # changes made less than a second ago
212 if repostate != self.repostate: 214 if repostate != self.repostate:
213 r = hg.repository(self.repo.baseui, self.repo.url()) 215 r = hg.repository(self.repo.baseui, self.repo.url())
214 self.repo = self._getview(r) 216 self.repo = self._getview(r)
215 # update these last to avoid threads seeing empty settings 217 # update these last to avoid threads seeing empty settings
216 self.repostate = repostate 218 self.repostate = repostate
217 # mtime is needed for ETag 219 # mtime is needed for ETag
218 self.mtime = st.st_mtime 220 self.mtime = mtime
219 221
220 def run(self): 222 def run(self):
221 """Start a server from CGI environment. 223 """Start a server from CGI environment.
222 224
223 Modern servers should be using WSGI and should avoid this 225 Modern servers should be using WSGI and should avoid this