23 'stream_out': 'pull', |
23 'stream_out': 'pull', |
24 'listkeys': 'pull', |
24 'listkeys': 'pull', |
25 'unbundle': 'push', |
25 'unbundle': 'push', |
26 'pushkey': 'push', |
26 'pushkey': 'push', |
27 } |
27 } |
|
28 |
|
29 ## Files of interest |
|
30 # Used to check if the repository has changed looking at mtime and size of |
|
31 # theses files. This should probably be relocated a bit higher in core. |
|
32 foi = [('spath', '00changelog.i'), |
|
33 ('spath', 'phaseroots'), # ! phase can change content at the same size |
|
34 ] |
28 |
35 |
29 def makebreadcrumb(url, prefix=''): |
36 def makebreadcrumb(url, prefix=''): |
30 '''Return a 'URL breadcrumb' list |
37 '''Return a 'URL breadcrumb' list |
31 |
38 |
32 A 'URL breadcrumb' is a list of URL-name pairs, |
39 A 'URL breadcrumb' is a list of URL-name pairs, |
118 return repo.filtered(viewconfig) |
125 return repo.filtered(viewconfig) |
119 else: |
126 else: |
120 return repo.filtered('served') |
127 return repo.filtered('served') |
121 |
128 |
122 def refresh(self, request=None): |
129 def refresh(self, request=None): |
123 st = get_stat(self.repo.spath, '00changelog.i') |
130 repostate = [] |
124 pst = get_stat(self.repo.spath, 'phaseroots') |
131 # file of interrests mtime and size |
125 # changelog mtime and size, phaseroots mtime and size |
132 for meth, fname in foi: |
126 repostate = ((st.st_mtime, st.st_size), (pst.st_mtime, pst.st_size)) |
133 prefix = getattr(self.repo, meth) |
|
134 st = get_stat(prefix, fname) |
|
135 repostate.append((st.st_mtime, st.st_size)) |
|
136 repostate = tuple(repostate) |
127 # we need to compare file size in addition to mtime to catch |
137 # we need to compare file size in addition to mtime to catch |
128 # changes made less than a second ago |
138 # changes made less than a second ago |
129 if repostate != self.repostate: |
139 if repostate != self.repostate: |
130 r = hg.repository(self.repo.baseui, self.repo.url()) |
140 r = hg.repository(self.repo.baseui, self.repo.url()) |
131 self.repo = self._getview(r) |
141 self.repo = self._getview(r) |