# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1520954091 -19800 # Node ID 7b4d1bfb6b7d5c2825b8658d6966bebf9d570a62 # Parent df20ddc79064a4cf63b21f11b4a1409d950a7974 grab: gracefully handle the case when we try to grab parent of wdir Before this patch, we go all the way down to obsmarker creation logic and gets an error saying that changeset cannot obsolete itself. We should be more smart here and error out early saying we cannot grab that changeset. diff -r df20ddc79064 -r 7b4d1bfb6b7d hgext3rd/evolve/cmdrewrite.py --- a/hgext3rd/evolve/cmdrewrite.py Sat Mar 03 23:31:46 2018 +0530 +++ b/hgext3rd/evolve/cmdrewrite.py Tue Mar 13 20:44:51 2018 +0530 @@ -1187,7 +1187,7 @@ origctx = repo[revs.first()] - if origctx in pctx.ancestors(): + if origctx in pctx.ancestors() or origctx.node() == pctx.node(): raise error.Abort(_("cannot grab an ancestor revision")) rewriteutil.precheck(repo, [origctx.rev()], 'grab') diff -r df20ddc79064 -r 7b4d1bfb6b7d tests/test-grab.t --- a/tests/test-grab.t Sat Mar 03 23:31:46 2018 +0530 +++ b/tests/test-grab.t Tue Mar 13 20:44:51 2018 +0530 @@ -47,6 +47,12 @@ abort: cannot grab an ancestor revision [255] +Grabbing the working directory parent + + $ hg grab -r . + abort: cannot grab an ancestor revision + [255] + Specifying multiple revisions to grab $ hg grab 1f0dee641bb7 -r 7c3bad9141dc