mercurial/scmutil.py
changeset 24723 467a33142425
parent 24693 0d28b0df77ea
child 24725 ee751d47cf2c
equal deleted inserted replaced
24722:02a5618e2fbf 24723:467a33142425
   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):