revert: accept just -I/-X without paths or -a/-i (issue4592) stable
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 22 Apr 2015 16:38:36 -0700
branchstable
changeset 24841 45bd336e3991
parent 24840 a5e3634ba024
child 24842 ca1ad8ef38be
revert: accept just -I/-X without paths or -a/-i (issue4592) 'hg revert -I foo' currently fails with abort: no files or directories specified (use --all to revert all files, or 'hg update 1' to update) It doesn't seem intentional that -I/-X without other paths or --all/--interactive should fail, and it doesn't seem that harmful to allow it either, so let's just do that.
mercurial/commands.py
tests/test-revert.t
--- a/mercurial/commands.py	Tue Apr 21 16:20:43 2015 -0700
+++ b/mercurial/commands.py	Wed Apr 22 16:38:36 2015 -0700
@@ -5511,7 +5511,8 @@
 
     ctx = scmutil.revsingle(repo, opts.get('rev'))
 
-    if not pats and not (opts.get('all') or opts.get('interactive')):
+    if (not (pats or opts.get('include') or opts.get('exclude') or
+             opts.get('all') or opts.get('interactive'))):
         msg = _("no files or directories specified")
         if p2 != nullid:
             hint = _("uncommitted merge, use --all to discard all changes,"
--- a/tests/test-revert.t	Tue Apr 21 16:20:43 2015 -0700
+++ b/tests/test-revert.t	Wed Apr 22 16:38:36 2015 -0700
@@ -201,12 +201,26 @@
   (use --all to revert all files, or 'hg update 1' to update)
   [255]
 
+call `hg revert` with -I
+---------------------------
+
+  $ echo a >> a
+  $ hg revert -I a
+  reverting a
+
+call `hg revert` with -X
+---------------------------
+
+  $ echo a >> a
+  $ hg revert -X d
+  reverting a
+
 call `hg revert` with --all
 ---------------------------
 
   $ hg revert --all -rtip
   reverting a
-
+  $ rm *.orig
 
 Issue332: confusing message when reverting directory
 ----------------------------------------------------