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) |