diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -125,16 +125,18 @@ class filectx(object): self._repo = repo self._path = path - assert changeid is not None or fileid is not None + assert (changeid is not None + or fileid is not None + or changectx is not None) if filelog: self._filelog = filelog - if changectx: - self._changectx = changectx - self._changeid = changectx.node() if fileid is None: - self._changeid = changeid + if changectx is None: + self._changeid = changeid + else: + self._changectx = changectx else: self._fileid = fileid