Skip to content
Snippets Groups Projects
Commit 183965a0 authored by Matt Harbison's avatar Matt Harbison
Browse files

context: override workingctx.hex() to avoid a crash

Since node is None for workingctx, it can't use the base class
implementation of 'hex(self.node())'.

It doesn't appear that there are any current callers of this, but there will be
when archive supports 'wdir()'.  My first thought was to use "{p1node}+", but
that would cause headaches elsewhere [1].

We should probably fix up localrepository.__getitem__ to accept this hash for
consistency, as a followup.  This works, if the full hash is specified:

  @@ -480,7 +480,7 @@
           return dirstate.dirstate(self.vfs, self.ui, self.root, validate)

       def __getitem__(self, changeid):
  -        if changeid is None:
  +        if changeid is None or changeid == 'ff' * 20:
               return context.workingctx(self)
           if isinstance(changeid, slice):
               return [context.changectx(self, i)

That differs from null, where it will accept any number of 0s, as long as it
isn't ambiguous.


[1] https://www.selenic.com/pipermail/mercurial-devel/2015-June/071166.html
parent 273d9425
No related merge requests found
......@@ -1334,6 +1334,9 @@
def __contains__(self, key):
return self._repo.dirstate[key] not in "?r"
def hex(self):
return "ff" * 20
@propertycache
def _parents(self):
p = self._repo.dirstate.parents()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment