diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1241,7 +1241,9 @@ p = self._repo.dirstate.parents() if p[1] == nullid: p = p[:-1] - return [self._repo[x] for x in p] + # use unfiltered repo to delay/avoid loading obsmarkers + unfi = self._repo.unfiltered() + return [changectx(self._repo, unfi.changelog.rev(n), n) for n in p] def _fileinfo(self, path): # populate __dict__['_manifest'] as workingctx has no _manifestdelta diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1228,8 +1228,7 @@ node = self.changelog.tip() rev = self.changelog.rev(node) return context.changectx(self, rev, node) - elif (changeid == '.' - or self.local() and changeid == self.dirstate.p1()): + elif changeid == '.': # this is a hack to delay/avoid loading obsmarkers # when we know that '.' won't be hidden node = self.dirstate.p1() diff --git a/tests/test-histedit-obsolete.t b/tests/test-histedit-obsolete.t --- a/tests/test-histedit-obsolete.t +++ b/tests/test-histedit-obsolete.t @@ -71,7 +71,6 @@ $ hg commit --amend -X . -m XXXXXX $ hg commit --amend -X . -m b2 $ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup - warning: ignoring unknown working parent aba7da937030! $ hg histedit --continue $ hg log -G @ 8:273c1f3b8626 c diff --git a/tests/test-single-head.t b/tests/test-single-head.t --- a/tests/test-single-head.t +++ b/tests/test-single-head.t @@ -200,5 +200,4 @@ $ hg strip --config extensions.strip= --rev 'desc("c_dH0")' saved backup bundle to $TESTTMP/client/.hg/strip-backup/fe47ea669cea-a41bf5a9-backup.hg - warning: ignoring unknown working parent 49003e504178!