mercurial/commands.py
changeset 6583 3951e04ea989
parent 6582 5acbdd3941c4
child 6584 29c77e5dfb3c
equal deleted inserted replaced
6582:5acbdd3941c4 6583:3951e04ea989
  1695     else:
  1695     else:
  1696         node = None
  1696         node = None
  1697 
  1697 
  1698     ret = 1
  1698     ret = 1
  1699     m = cmdutil.match(repo, pats, opts, default='relglob')
  1699     m = cmdutil.match(repo, pats, opts, default='relglob')
  1700     m.bad = lambda x,y: True
  1700     m.bad = lambda x,y: False
  1701     for src, abs, rel, exact in cmdutil.walk(repo, m, node):
  1701     for src, abs, rel, exact in cmdutil.walk(repo, m, node):
  1702         if src == 'b':
       
  1703             continue
       
  1704         if not node and abs not in repo.dirstate:
  1702         if not node and abs not in repo.dirstate:
  1705             continue
  1703             continue
  1706         if opts['fullpath']:
  1704         if opts['fullpath']:
  1707             ui.write(os.path.join(repo.root, abs), end)
  1705             ui.write(os.path.join(repo.root, abs), end)
  1708         else:
  1706         else:
  2340     try:
  2338     try:
  2341         # walk dirstate.
  2339         # walk dirstate.
  2342         files = []
  2340         files = []
  2343 
  2341 
  2344         m = cmdutil.match(repo, pats, opts)
  2342         m = cmdutil.match(repo, pats, opts)
  2345         def bad(f, msg):
  2343         m.bad = lambda x,y: False
  2346             if f not in mf:
       
  2347                 repo.ui.warn("%s: %s\n" % (m.rel(f), msg))
       
  2348             return False
       
  2349         m.bad = bad
       
  2350         for src, abs, rel, exact in cmdutil.walk(repo, m):
  2344         for src, abs, rel, exact in cmdutil.walk(repo, m):
  2351             names[abs] = (rel, exact)
  2345             names[abs] = (rel, exact)
  2352 
  2346 
  2353         # walk target manifest.
  2347         # walk target manifest.
  2354 
  2348 
  2355         def badfn(path, msg):
  2349         def badfn(path, msg):
  2356             if path in names:
  2350             if path in names:
  2357                 return True
  2351                 return False
  2358             path_ = path + '/'
  2352             path_ = path + '/'
  2359             for f in names:
  2353             for f in names:
  2360                 if f.startswith(path_):
  2354                 if f.startswith(path_):
  2361                     return True
  2355                     return False
       
  2356             repo.ui.warn("%s: %s\n" % (m.rel(path), msg))
  2362             return False
  2357             return False
  2363 
  2358 
  2364         m = cmdutil.match(repo, pats, opts)
  2359         m = cmdutil.match(repo, pats, opts)
  2365         m.bad = badfn
  2360         m.bad = badfn
  2366         for src, abs, rel, exact in cmdutil.walk(repo, m, node=node):
  2361         for src, abs, rel, exact in cmdutil.walk(repo, m, node=node):
  2367             if abs in names or src == 'b':
  2362             if abs in names:
  2368                 continue
  2363                 continue
  2369             names[abs] = (rel, exact)
  2364             names[abs] = (rel, exact)
  2370 
  2365 
  2371         changes = repo.status(files=files, match=names.has_key)[:4]
  2366         changes = repo.status(files=files, match=names.has_key)[:4]
  2372         modified, added, removed, deleted = map(dict.fromkeys, changes)
  2367         modified, added, removed, deleted = map(dict.fromkeys, changes)