mercurial/commands.py
changeset 4225 281f9f8f1bd4
parent 4217 3be4785f8994
child 4229 24c22a3f2ef8
equal deleted inserted replaced
4223:2216535f07d7 4225:281f9f8f1bd4
  2164         if src == 'b':
  2164         if src == 'b':
  2165             target_only[abs] = True
  2165             target_only[abs] = True
  2166 
  2166 
  2167     # walk target manifest.
  2167     # walk target manifest.
  2168 
  2168 
       
  2169     def badmatch(path):
       
  2170         if path in names:
       
  2171             return True
       
  2172         path_ = path + '/'
       
  2173         for f in names:
       
  2174             if f.startswith(path_):
       
  2175                 return True
       
  2176         return False
       
  2177 
  2169     for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, node=node,
  2178     for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, node=node,
  2170                                              badmatch=names.has_key):
  2179                                              badmatch=badmatch):
  2171         if abs in names: continue
  2180         if abs in names or src == 'b':
       
  2181             continue
  2172         names[abs] = (rel, exact)
  2182         names[abs] = (rel, exact)
  2173         target_only[abs] = True
  2183         target_only[abs] = True
  2174 
  2184 
  2175     changes = repo.status(match=names.has_key, wlock=wlock)[:5]
  2185     changes = repo.status(match=names.has_key, wlock=wlock)[:5]
  2176     modified, added, removed, deleted, unknown = map(dict.fromkeys, changes)
  2186     modified, added, removed, deleted, unknown = map(dict.fromkeys, changes)