changeset 4393:cf5f35ec4720

Fix rm -A with no patterns, which I just broke.
author Brendan Cully <brendan@kublai.com>
date Mon, 30 Apr 2007 09:13:27 -0700
parents 9770d260a405
children a6436e9333db
files mercurial/commands.py tests/test-remove tests/test-remove.out
diffstat 3 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2083,7 +2083,8 @@ def remove(ui, repo, *pats, **opts):
     entire project history.  If the files still exist in the working
     directory, they will be deleted from it.  If invoked with --after,
     files are marked as removed, but not actually unlinked unless --force
-    is also given.
+    is also given. Without an explicit pattern, --after will only mark
+    files as removed if they are no longer in the working directory.
 
     This command schedules the files to be removed at the next commit.
     To undo a remove before that, see hg revert.
@@ -2110,6 +2111,8 @@ def remove(ui, repo, *pats, **opts):
             reason = _('has been marked for add (use -f to force removal)')
         elif abs in unknown:
             reason = _('is not managed')
+        elif opts['after'] and not pats and abs not in deleted:
+            continue
         elif abs in removed:
             continue
         if reason:
--- a/tests/test-remove
+++ b/tests/test-remove
@@ -29,7 +29,14 @@ echo c >> b
 hg rm b
 hg rm -f b
 hg rm -A c
+hg st
 cat c
+hg revert c
+hg rm -A
+hg st
+rm c
+hg rm -A
+hg st
 
 cd ..
 hg clone a b
--- a/tests/test-remove.out
+++ b/tests/test-remove.out
@@ -54,5 +54,11 @@ adding a
 adding b
 adding c
 not removing b: file is modified (use -f to force removal)
+R b
+R c
 c
+R b
+removing c
+R b
+R c
 3 files updated, 0 files merged, 0 files removed, 0 files unresolved