##// END OF EJS Templates
optimize revlog.lookup when passed hex(node)[:...]...
Benoit Boissinot -
r3157:4fe41a9e default
parent child Browse files
Show More
@@ -763,15 +763,22 b' class revlog(object):'
763 return self.node(rev)
763 return self.node(rev)
764 except (ValueError, OverflowError):
764 except (ValueError, OverflowError):
765 pass
765 pass
766 try:
766 # hex(node)[:...]
767 # hex(node)[:...]
768 if len(id) % 2 == 0:
769 bin_id = bin(id)
770 else:
771 bin_id = bin(id[:-1])
767 node = None
772 node = None
768 for n in self.nodemap:
773 for n in self.nodemap:
769 if hex(n).startswith(id):
774 if n.startswith(bin_id) and hex(n).startswith(id):
770 if node is not None:
775 if node is not None:
771 raise RevlogError(_("Ambiguous identifier"))
776 raise RevlogError(_("Ambiguous identifier"))
772 node = n
777 node = n
773 if node is not None:
778 if node is not None:
774 return node
779 return node
780 except TypeError:
781 pass
775
782
776 # might need fixing if we change hash lengths
783 # might need fixing if we change hash lengths
777 if len(id) == 20 and id in self.nodemap:
784 if len(id) == 20 and id in self.nodemap:
General Comments 0
You need to be logged in to leave comments. Login now