mercurial/commands.py
changeset 4225 281f9f8f1bd4
parent 4217 3be4785f8994
child 4229 24c22a3f2ef8
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2166,9 +2166,19 @@ def revert(ui, repo, *pats, **opts):
 
     # walk target manifest.
 
+    def badmatch(path):
+        if path in names:
+            return True
+        path_ = path + '/'
+        for f in names:
+            if f.startswith(path_):
+                return True
+        return False
+
     for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, node=node,
-                                             badmatch=names.has_key):
-        if abs in names: continue
+                                             badmatch=badmatch):
+        if abs in names or src == 'b':
+            continue
         names[abs] = (rel, exact)
         target_only[abs] = True