Move commands.forget over to using new walk code.
authorBryan O'Sullivan <bos@serpentine.com>
Fri, 29 Jul 2005 08:49:01 -0800
changeset 810 790a0ff306f2
parent 809 d0fb9efa2b2d
child 811 fa9aaf3bbdd7
Move commands.forget over to using new walk code. With no names, it now recursively forgets everything, as is the default behaviour of other commands. And prints the names of all files it hasn't specifically been told to forget.
doc/hg.1.txt
mercurial/commands.py
--- a/doc/hg.1.txt	Fri Jul 29 08:42:28 2005 -0800
+++ b/doc/hg.1.txt	Fri Jul 29 08:49:01 2005 -0800
@@ -161,9 +161,13 @@
 
     -o, --output <filespec>   print output to file with formatted named
 
-forget [files]::
+forget [options] [files]::
     Undo an 'hg add' scheduled for the next commit.
 
+    options:
+    -I, --include <pat>  include directories matching the given patterns
+    -X, --exclude <pat>  exclude directories matching the given patterns
+
 heads::
     Show all repository head changesets.
     
--- a/mercurial/commands.py	Fri Jul 29 08:42:28 2005 -0800
+++ b/mercurial/commands.py	Fri Jul 29 08:49:01 2005 -0800
@@ -601,9 +601,15 @@
         seqno += 1
         doexport(ui, repo, cset, seqno, total, revwidth, opts)
 
-def forget(ui, repo, file1, *files):
+def forget(ui, repo, *pats, **opts):
     """don't add the specified files on the next commit"""
-    repo.forget(relpath(repo, (file1,) + files))
+    q = dict(zip(pats, pats))
+    forget = []
+    for src, abs, rel in walk(repo, pats, opts):
+        if repo.dirstate.state(abs) == 'a':
+            forget.append(abs)
+            if rel not in q: ui.status('forgetting ', rel, '\n')
+    repo.forget(forget)
 
 def heads(ui, repo):
     """show current repository heads"""
@@ -1153,7 +1159,10 @@
         (export,
          [('o', 'output', "", 'output to file')],
          "hg export [-o OUTFILE] REV..."),
-    "forget": (forget, [], "hg forget FILE..."),
+    "forget": (forget,
+               [('I', 'include', [], 'include path in search'),
+                ('X', 'exclude', [], 'exclude path from search')],
+               "hg forget FILE..."),
     "heads": (heads, [], 'hg heads'),
     "help": (help_, [], 'hg help [COMMAND]'),
     "identify|id": (identify, [], 'hg identify'),