mercurial/scmutil.py
changeset 51524 4bfae99c4021
parent 51283 83c6dceeb10d
child 51525 530b4cffd6a6
equal deleted inserted replaced
51523:ef369d16965d 51524:4bfae99c4021
   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 = sorted(r for r in cl.filteredrevs | obsrevs if r <= maxrev)
   379         if revs:
   379         if revs:
   380             s = hashutil.sha1()
   380             result = _hash_revs(revs)
   381             for rev in revs:
       
   382                 s.update(b'%d;' % rev)
       
   383             result = s.digest()
       
   384             cl._filteredrevs_hashcache[key] = result
   381             cl._filteredrevs_hashcache[key] = result
   385     return result
   382     return result
       
   383 
       
   384 
       
   385 def _hash_revs(revs):
       
   386     """return a hash from a list of revision numbers"""
       
   387     s = hashutil.sha1()
       
   388     for rev in revs:
       
   389         s.update(b'%d;' % rev)
       
   390     return s.digest()
   386 
   391 
   387 
   392 
   388 def walkrepos(path, followsym=False, seen_dirs=None, recurse=False):
   393 def walkrepos(path, followsym=False, seen_dirs=None, recurse=False):
   389     """yield every hg repository under path, always recursively.
   394     """yield every hg repository under path, always recursively.
   390     The recurse flag will only control recursion into repo working dirs"""
   395     The recurse flag will only control recursion into repo working dirs"""