From patchwork Wed Sep 23 23:11:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D9078: repoview: don't crash if mergestate points to non-existent node From: phabricator X-Patchwork-Id: 47271 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Wed, 23 Sep 2020 23:11:13 +0000 martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REPOSITORY rHG Mercurial BRANCH stable REVISION DETAIL https://phab.mercurial-scm.org/D9078 AFFECTED FILES mercurial/repoview.py tests/test-obsolete.t CHANGE DETAILS To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -1826,8 +1826,8 @@ ancestor path: file (node bc7ebe2d260cff30d2a39a130d84add36216f791) other path: file (node b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3) extra: ancestorlinknode = b73b8c9a4ab4da89a5a35a6f10dfb13edc84ca37 -BROKEN: We should be able to see the log (without the deleted commit, of course) +We should be able to see the log (without the deleted commit, of course) $ hg log -G - abort: unknown revision 'b73b8c9a4ab4da89a5a35a6f10dfb13edc84ca37'! - [255] + @ 0:f53e9479dce5 (draft) [tip ] first + $ cd .. diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -70,8 +70,10 @@ ms = mergestate.mergestate.read(repo) if ms.active(): - pinned.add(ms.localctx.rev()) - pinned.add(ms.otherctx.rev()) + for node in (ms.local, ms.other): + rev = cl.index.get_rev(node) + if rev is not None: + pinned.add(rev) return pinned