# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 1505854081 -19800 # Node ID 624c53e4121d88838dbfdf9ba7cb03cedba6e913 # Parent f94442d4698402f27201527b0663c93253ef7831 uncommit: don't allow bare uncommit on dirty working directory As per IRC discussion and suggestion by Augie, we should not allow bare `hg uncommit` on dirty working directory. Differential Revision: https://phab.mercurial-scm.org/D734 diff -r f94442d46984 -r 624c53e4121d hgext/uncommit.py --- a/hgext/uncommit.py Sat Sep 16 02:34:13 2017 +0530 +++ b/hgext/uncommit.py Wed Sep 20 02:18:01 2017 +0530 @@ -22,6 +22,7 @@ from mercurial.i18n import _ from mercurial import ( + cmdutil, commands, context, copies, @@ -148,6 +149,8 @@ with repo.wlock(), repo.lock(): wctx = repo[None] + if not pats: + cmdutil.bailifchanged(repo) if wctx.parents()[0].node() == node.nullid: raise error.Abort(_("cannot uncommit null changeset")) if len(wctx.parents()) > 1: diff -r f94442d46984 -r 624c53e4121d tests/test-uncommit.t --- a/tests/test-uncommit.t Sat Sep 16 02:34:13 2017 +0530 +++ b/tests/test-uncommit.t Wed Sep 20 02:18:01 2017 +0530 @@ -149,6 +149,9 @@ foo $ hg status M files + $ hg uncommit + abort: uncommitted changes + [255] $ hg uncommit files $ cat files abcde @@ -337,7 +340,7 @@ (branch merge, don't forget to commit) $ hg uncommit - abort: cannot uncommit while merging + abort: outstanding uncommitted merge [255] $ hg status