equal
deleted
inserted
replaced
169 if self._abort: |
169 if self._abort: |
170 raise util.Abort(msg) |
170 raise util.Abort(msg) |
171 self._ui.warn(_("warning: %s\n") % msg) |
171 self._ui.warn(_("warning: %s\n") % msg) |
172 self._loweredfiles.add(fl) |
172 self._loweredfiles.add(fl) |
173 self._newfiles.add(f) |
173 self._newfiles.add(f) |
|
174 |
|
175 def filteredhash(repo, maxrev): |
|
176 """build hash of filtered revisions in the current repoview. |
|
177 |
|
178 Multiple caches perform up-to-date validation by checking that the |
|
179 tiprev and tipnode stored in the cache file match the current repository. |
|
180 However, this is not sufficient for validating repoviews because the set |
|
181 of revisions in the view may change without the repository tiprev and |
|
182 tipnode changing. |
|
183 |
|
184 This function hashes all the revs filtered from the view and returns |
|
185 that SHA-1 digest. |
|
186 """ |
|
187 cl = repo.changelog |
|
188 if not cl.filteredrevs: |
|
189 return None |
|
190 key = None |
|
191 revs = sorted(r for r in cl.filteredrevs if r <= maxrev) |
|
192 if revs: |
|
193 s = util.sha1() |
|
194 for rev in revs: |
|
195 s.update('%s;' % rev) |
|
196 key = s.digest() |
|
197 return key |
174 |
198 |
175 class abstractvfs(object): |
199 class abstractvfs(object): |
176 """Abstract base class; cannot be instantiated""" |
200 """Abstract base class; cannot be instantiated""" |
177 |
201 |
178 def __init__(self, *args, **kwargs): |
202 def __init__(self, *args, **kwargs): |