Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 37900: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
37899:fdd8da79eb85 | 37900: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: |