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
--- 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:
--- 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