equal
deleted
inserted
replaced
761 if rev < 0: rev = self.count() + rev |
761 if rev < 0: rev = self.count() + rev |
762 if rev < 0 or rev >= self.count(): raise ValueError |
762 if rev < 0 or rev >= self.count(): raise ValueError |
763 return self.node(rev) |
763 return self.node(rev) |
764 except (ValueError, OverflowError): |
764 except (ValueError, OverflowError): |
765 pass |
765 pass |
766 # hex(node)[:...] |
766 try: |
767 node = None |
767 # hex(node)[:...] |
768 for n in self.nodemap: |
768 if len(id) % 2 == 0: |
769 if hex(n).startswith(id): |
769 bin_id = bin(id) |
770 if node is not None: |
770 else: |
771 raise RevlogError(_("Ambiguous identifier")) |
771 bin_id = bin(id[:-1]) |
772 node = n |
772 node = None |
773 if node is not None: |
773 for n in self.nodemap: |
774 return node |
774 if n.startswith(bin_id) and hex(n).startswith(id): |
|
775 if node is not None: |
|
776 raise RevlogError(_("Ambiguous identifier")) |
|
777 node = n |
|
778 if node is not None: |
|
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: |
778 # node |
785 # node |
779 return id |
786 return id |