comparison mercurial/revlog.py @ 45053:cc2572923ea3

revlog: avoid hard-coded hash sizes Differential Revision: https://phab.mercurial-scm.org/D8683
author Joerg Sonnenberger <joerg@bec.de>
date Mon, 06 Jul 2020 14:30:13 +0200
parents affe0fb42250
children 2d6aea053153
comparison
equal deleted inserted replaced
45052:91f4662b7fa7 45053:cc2572923ea3
1521 1521
1522 hexnode = hex(node) 1522 hexnode = hex(node)
1523 1523
1524 def disambiguate(hexnode, minlength): 1524 def disambiguate(hexnode, minlength):
1525 """Disambiguate against wdirid.""" 1525 """Disambiguate against wdirid."""
1526 for length in range(minlength, 41): 1526 for length in range(minlength, len(hexnode) + 1):
1527 prefix = hexnode[:length] 1527 prefix = hexnode[:length]
1528 if not maybewdir(prefix): 1528 if not maybewdir(prefix):
1529 return prefix 1529 return prefix
1530 1530
1531 if not getattr(self, 'filteredrevs', None): 1531 if not getattr(self, 'filteredrevs', None):
1538 except AttributeError: 1538 except AttributeError:
1539 # Fall through to pure code 1539 # Fall through to pure code
1540 pass 1540 pass
1541 1541
1542 if node == wdirid: 1542 if node == wdirid:
1543 for length in range(minlength, 41): 1543 for length in range(minlength, len(hexnode) + 1):
1544 prefix = hexnode[:length] 1544 prefix = hexnode[:length]
1545 if isvalid(prefix): 1545 if isvalid(prefix):
1546 return prefix 1546 return prefix
1547 1547
1548 for length in range(minlength, 41): 1548 for length in range(minlength, len(hexnode) + 1):
1549 prefix = hexnode[:length] 1549 prefix = hexnode[:length]
1550 if isvalid(prefix): 1550 if isvalid(prefix):
1551 return disambiguate(hexnode, length) 1551 return disambiguate(hexnode, length)
1552 1552
1553 def cmp(self, node, text): 1553 def cmp(self, node, text):