From patchwork Sun May 21 16:18:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3,of,3,V2] revset: make `hg log -r 'wdir()^'` work (issue4905) From: Pulkit Goyal <7895pulkit@gmail.com> X-Patchwork-Id: 20798 Message-Id: <49b70fa3da7e0ab83c2d.1495383525@workspace> To: mercurial-devel@mercurial-scm.org Date: Sun, 21 May 2017 21:48:45 +0530 # HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1495204605 -19800 # Fri May 19 20:06:45 2017 +0530 # Node ID 49b70fa3da7e0ab83c2d979a961dc91b93992cea # Parent 497d73787ea6e0b0ec8aa2262812c82086dc8e8b revset: make `hg log -r 'wdir()^'` work (issue4905) This patch catches the WdirUnsupported exception to support wdir()^. diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -1408,7 +1408,10 @@ ps = set() cl = repo.changelog for r in getset(repo, fullreposet(repo), x): - ps.add(cl.parentrevs(r)[0]) + try: + ps.add(cl.parentrevs(r)[0]) + except error.WdirUnsupported: + ps.add(repo[r].parents()[0].rev()) ps -= {node.nullrev} # XXX we should turn this into a baseset instead of a set, smartset may do # some optimizations from the fact this is a baseset. diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -1221,6 +1221,15 @@ Test working-directory revision $ hg debugrevspec 'wdir()' 2147483647 + $ hg debugrevspec 'wdir()^' + 9 + $ hg up 7 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg debugrevspec 'wdir()^' + 7 +For tests consistency + $ hg up 9 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg debugrevspec 'tip or wdir()' 9 2147483647