mercurial/scmutil.py
changeset 51525 530b4cffd6a6
parent 51524 4bfae99c4021
child 51526 a03fa40afd01
equal deleted inserted replaced
51524:4bfae99c4021 51525:530b4cffd6a6
   373         key = maxrev
   373         key = maxrev
   374         obsrevs = frozenset()
   374         obsrevs = frozenset()
   375 
   375 
   376     result = cl._filteredrevs_hashcache.get(key)
   376     result = cl._filteredrevs_hashcache.get(key)
   377     if not result:
   377     if not result:
   378         revs = sorted(r for r in cl.filteredrevs | obsrevs if r <= maxrev)
   378         revs, obs_revs = _filtered_and_obs_revs(repo, maxrev)
       
   379         if needobsolete:
       
   380             revs = revs | obs_revs
       
   381         revs = sorted(revs)
   379         if revs:
   382         if revs:
   380             result = _hash_revs(revs)
   383             result = _hash_revs(revs)
   381             cl._filteredrevs_hashcache[key] = result
   384             cl._filteredrevs_hashcache[key] = result
   382     return result
   385     return result
       
   386 
       
   387 
       
   388 def _filtered_and_obs_revs(repo, max_rev):
       
   389     """return the set of filtered and non-filtered obsolete revision"""
       
   390     cl = repo.changelog
       
   391     obs_set = obsolete.getrevs(repo, b'obsolete')
       
   392     filtered_set = cl.filteredrevs
       
   393     if cl.filteredrevs:
       
   394         obs_set = obs_set - cl.filteredrevs
       
   395     if max_rev < (len(cl) - 1):
       
   396         # there might be revision to filter out
       
   397         filtered_set = set(r for r in filtered_set if r <= max_rev)
       
   398         obs_set = set(r for r in obs_set if r <= max_rev)
       
   399     return (filtered_set, obs_set)
   383 
   400 
   384 
   401 
   385 def _hash_revs(revs):
   402 def _hash_revs(revs):
   386     """return a hash from a list of revision numbers"""
   403     """return a hash from a list of revision numbers"""
   387     s = hashutil.sha1()
   404     s = hashutil.sha1()