mercurial/context.py
changeset 37856 bb8e93b332a7
parent 37855 fdd8da79eb85
child 37857 9231148ea599
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: