comparison mercurial/context.py @ 23560:aead63705504

changectx: use names api to simplify and extend node lookup Previously, changectx had to know about each type of name (bookmark, tag, etc.) to look up. Now, we use repo.namenodes to simplify (and extend) this.
author Sean Farley <sean.michael.farley@gmail.com>
date Thu, 16 Oct 2014 23:27:54 -0700
parents 4dd8a6a1240d
children 3c2419e07df5
comparison
equal deleted inserted replaced
23559:3b3a962e3677 23560:aead63705504
405 except error.FilteredLookupError: 405 except error.FilteredLookupError:
406 raise 406 raise
407 except (TypeError, LookupError): 407 except (TypeError, LookupError):
408 pass 408 pass
409 409
410 if changeid in repo._bookmarks: 410 # lookup bookmarks through the name interface
411 self._node = repo._bookmarks[changeid] 411 try:
412 self._node = repo.names.singlenode(changeid)
412 self._rev = repo.changelog.rev(self._node) 413 self._rev = repo.changelog.rev(self._node)
413 return 414 return
415 except KeyError:
416 pass
417
414 if changeid in repo._tagscache.tags: 418 if changeid in repo._tagscache.tags:
415 self._node = repo._tagscache.tags[changeid] 419 self._node = repo._tagscache.tags[changeid]
416 self._rev = repo.changelog.rev(self._node) 420 self._rev = repo.changelog.rev(self._node)
417 return 421 return
418 try: 422 try: