mercurial/scmutil.py
changeset 37528 d2b484eed1ec
parent 37527 1c09481acdcc
child 37529 45667439439e
equal deleted inserted replaced
37527:1c09481acdcc 37528:d2b484eed1ec
    16 import subprocess
    16 import subprocess
    17 import weakref
    17 import weakref
    18 
    18 
    19 from .i18n import _
    19 from .i18n import _
    20 from .node import (
    20 from .node import (
       
    21     bin,
    21     hex,
    22     hex,
    22     nullid,
    23     nullid,
    23     short,
    24     short,
    24     wdirid,
    25     wdirid,
    25     wdirrev,
    26     wdirrev,
   477         except error.FilteredIndexError:
   478         except error.FilteredIndexError:
   478             raise
   479             raise
   479         except (ValueError, OverflowError, IndexError):
   480         except (ValueError, OverflowError, IndexError):
   480             pass
   481             pass
   481 
   482 
       
   483         if len(symbol) == 40:
       
   484             try:
       
   485                 node = bin(symbol)
       
   486                 rev = repo.changelog.rev(node)
       
   487                 return repo[rev]
       
   488             except error.FilteredLookupError:
       
   489                 raise
       
   490             except (TypeError, LookupError):
       
   491                 pass
       
   492 
   482         return repo[symbol]
   493         return repo[symbol]
   483 
   494 
       
   495     except error.WdirUnsupported:
       
   496         return repo[None]
   484     except (error.FilteredIndexError, error.FilteredLookupError,
   497     except (error.FilteredIndexError, error.FilteredLookupError,
   485             error.FilteredRepoLookupError):
   498             error.FilteredRepoLookupError):
   486         raise _filterederror(repo, symbol)
   499         raise _filterederror(repo, symbol)
   487 
   500 
   488 def _filterederror(repo, changeid):
   501 def _filterederror(repo, changeid):