comparison mercurial/revlog.py @ 49247:3e5f1fb2aec7

revlog: make try block smaller Making try blocks as small as possible is generally a good idea, especially when catching very general errors like TypeError.
author Manuel Jacob <me@manueljacob.de>
date Mon, 30 May 2022 00:45:00 +0200
parents 31602d471b60
children 63fd0282ad40
comparison
equal deleted inserted replaced
49246:31602d471b60 49247:3e5f1fb2aec7
1523 1523
1524 if id in self._pcache: 1524 if id in self._pcache:
1525 return self._pcache[id] 1525 return self._pcache[id]
1526 1526
1527 if len(id) <= 40: 1527 if len(id) <= 40:
1528 # hex(node)[:...]
1529 l = len(id) // 2 * 2 # grab an even number of digits
1528 try: 1530 try:
1529 # hex(node)[:...]
1530 l = len(id) // 2 * 2 # grab an even number of digits
1531 prefix = bin(id[:l]) 1531 prefix = bin(id[:l])
1532 except TypeError:
1533 pass
1534 else:
1532 nl = [e[7] for e in self.index if e[7].startswith(prefix)] 1535 nl = [e[7] for e in self.index if e[7].startswith(prefix)]
1533 nl = [ 1536 nl = [
1534 n for n in nl if hex(n).startswith(id) and self.hasnode(n) 1537 n for n in nl if hex(n).startswith(id) and self.hasnode(n)
1535 ] 1538 ]
1536 if self.nodeconstants.nullhex.startswith(id): 1539 if self.nodeconstants.nullhex.startswith(id):
1543 id, self.display_id, _(b'ambiguous identifier') 1546 id, self.display_id, _(b'ambiguous identifier')
1544 ) 1547 )
1545 if maybewdir: 1548 if maybewdir:
1546 raise error.WdirUnsupported 1549 raise error.WdirUnsupported
1547 return None 1550 return None
1548 except TypeError:
1549 pass
1550 1551
1551 def lookup(self, id): 1552 def lookup(self, id):
1552 """locate a node based on: 1553 """locate a node based on:
1553 - revision number or str(revision number) 1554 - revision number or str(revision number)
1554 - nodeid or subset of hex nodeid 1555 - nodeid or subset of hex nodeid