diff -r 2216535f07d7 -r 281f9f8f1bd4 mercurial/commands.py --- a/mercurial/commands.py Thu Mar 15 18:55:53 2007 -0500 +++ b/mercurial/commands.py Fri Mar 16 00:22:52 2007 -0300 @@ -2166,9 +2166,19 @@ # 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