comparison mercurial/context.py @ 37856:bb8e93b332a7

context: clarify that only one attempt is made to interpret changeid We can now tell what type of revision specifier we have just by looking at it (we no longer attempt to interpret it in one way after the other -- that's now in scmutil.revsymbol()). Let's clarify this in the code by swithing to if/elif. Differential Revision: https://phab.mercurial-scm.org/D3451
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 06 Apr 2018 12:59:17 -0700
parents fdd8da79eb85
children 9231148ea599
comparison
equal deleted inserted replaced
37855:fdd8da79eb85 37856:bb8e93b332a7
387 try: 387 try:
388 if isinstance(changeid, int): 388 if isinstance(changeid, int):
389 self._node = repo.changelog.node(changeid) 389 self._node = repo.changelog.node(changeid)
390 self._rev = changeid 390 self._rev = changeid
391 return 391 return
392 if changeid == 'null': 392 elif changeid == 'null':
393 self._node = nullid 393 self._node = nullid
394 self._rev = nullrev 394 self._rev = nullrev
395 return 395 return
396 if changeid == 'tip': 396 elif changeid == 'tip':
397 self._node = repo.changelog.tip() 397 self._node = repo.changelog.tip()
398 self._rev = repo.changelog.rev(self._node) 398 self._rev = repo.changelog.rev(self._node)
399 return 399 return
400 if (changeid == '.' 400 elif (changeid == '.'
401 or repo.local() and changeid == repo.dirstate.p1()): 401 or repo.local() and changeid == repo.dirstate.p1()):
402 # this is a hack to delay/avoid loading obsmarkers 402 # this is a hack to delay/avoid loading obsmarkers
403 # when we know that '.' won't be hidden 403 # when we know that '.' won't be hidden
404 self._node = repo.dirstate.p1() 404 self._node = repo.dirstate.p1()
405 self._rev = repo.unfiltered().changelog.rev(self._node) 405 self._rev = repo.unfiltered().changelog.rev(self._node)
406 return 406 return
407 if len(changeid) == 20: 407 elif len(changeid) == 20:
408 try: 408 try:
409 self._node = changeid 409 self._node = changeid
410 self._rev = repo.changelog.rev(changeid) 410 self._rev = repo.changelog.rev(changeid)
411 return 411 return
412 except error.FilteredLookupError: 412 except error.FilteredLookupError:
419 if (repo.local() 419 if (repo.local()
420 and changeid in repo.unfiltered().dirstate.parents()): 420 and changeid in repo.unfiltered().dirstate.parents()):
421 msg = _("working directory has unknown parent '%s'!") 421 msg = _("working directory has unknown parent '%s'!")
422 raise error.Abort(msg % short(changeid)) 422 raise error.Abort(msg % short(changeid))
423 423
424 if len(changeid) == 40: 424 elif len(changeid) == 40:
425 try: 425 try:
426 self._node = bin(changeid) 426 self._node = bin(changeid)
427 self._rev = repo.changelog.rev(self._node) 427 self._rev = repo.changelog.rev(self._node)
428 return 428 return
429 except error.FilteredLookupError: 429 except error.FilteredLookupError: