Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 1255:e825dfea3823
Get all commands that operate on files to honour --verbose and --quiet.
Fix minor bug in remove command; the when-to-unlink logic was wonky.
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Wed, 14 Sep 2005 22:32:12 -0700 |
parents | e6560042b7b8 |
children | fe7fbfdb066d |
comparison
equal
deleted
inserted
replaced
1254:e6560042b7b8 | 1255:e825dfea3823 |
---|---|
483 def add(ui, repo, *pats, **opts): | 483 def add(ui, repo, *pats, **opts): |
484 '''add the specified files on the next commit''' | 484 '''add the specified files on the next commit''' |
485 names = [] | 485 names = [] |
486 for src, abs, rel, exact in walk(repo, pats, opts): | 486 for src, abs, rel, exact in walk(repo, pats, opts): |
487 if exact: | 487 if exact: |
488 if ui.verbose: ui.status('adding %s\n' % rel) | |
488 names.append(abs) | 489 names.append(abs) |
489 elif repo.dirstate.state(abs) == '?': | 490 elif repo.dirstate.state(abs) == '?': |
490 ui.status('adding %s\n' % rel) | 491 ui.status('adding %s\n' % rel) |
491 names.append(abs) | 492 names.append(abs) |
492 repo.add(names) | 493 repo.add(names) |
495 """add all new files, delete all missing files""" | 496 """add all new files, delete all missing files""" |
496 add, remove = [], [] | 497 add, remove = [], [] |
497 for src, abs, rel, exact in walk(repo, pats, opts): | 498 for src, abs, rel, exact in walk(repo, pats, opts): |
498 if src == 'f' and repo.dirstate.state(abs) == '?': | 499 if src == 'f' and repo.dirstate.state(abs) == '?': |
499 add.append(abs) | 500 add.append(abs) |
500 if not exact: | 501 if ui.verbose or not exact: |
501 ui.status('adding ', rel, '\n') | 502 ui.status('adding ', rel, '\n') |
502 if repo.dirstate.state(abs) != 'r' and not os.path.exists(rel): | 503 if repo.dirstate.state(abs) != 'r' and not os.path.exists(rel): |
503 remove.append(abs) | 504 remove.append(abs) |
504 if not exact: | 505 if ui.verbose or not exact: |
505 ui.status('removing ', rel, '\n') | 506 ui.status('removing ', rel, '\n') |
506 repo.add(add) | 507 repo.add(add) |
507 repo.remove(remove) | 508 repo.remove(remove) |
508 | 509 |
509 def annotate(ui, repo, *pats, **opts): | 510 def annotate(ui, repo, *pats, **opts): |
964 """don't add the specified files on the next commit""" | 965 """don't add the specified files on the next commit""" |
965 forget = [] | 966 forget = [] |
966 for src, abs, rel, exact in walk(repo, pats, opts): | 967 for src, abs, rel, exact in walk(repo, pats, opts): |
967 if repo.dirstate.state(abs) == 'a': | 968 if repo.dirstate.state(abs) == 'a': |
968 forget.append(abs) | 969 forget.append(abs) |
969 if not exact: | 970 if ui.verbose or not exact: |
970 ui.status('forgetting ', rel, '\n') | 971 ui.status('forgetting ', rel, '\n') |
971 repo.forget(forget) | 972 repo.forget(forget) |
972 | 973 |
973 def grep(ui, repo, pattern, *pats, **opts): | 974 def grep(ui, repo, pattern, *pats, **opts): |
974 """search for a pattern in specified files and revisions""" | 975 """search for a pattern in specified files and revisions""" |
1402 c, a, d, u = repo.changes(files = [abs]) | 1403 c, a, d, u = repo.changes(files = [abs]) |
1403 reason = None | 1404 reason = None |
1404 if c: reason = 'is modified' | 1405 if c: reason = 'is modified' |
1405 elif a: reason = 'has been marked for add' | 1406 elif a: reason = 'has been marked for add' |
1406 elif u: reason = 'is not managed' | 1407 elif u: reason = 'is not managed' |
1407 if reason and exact: | 1408 if reason: |
1408 ui.warn('not removing %s: file %s\n' % (rel, reason)) | 1409 if exact: ui.warn('not removing %s: file %s\n' % (rel, reason)) |
1409 else: | 1410 else: |
1410 return True | 1411 return True |
1411 for src, abs, rel, exact in walk(repo, (pat,) + pats, opts): | 1412 for src, abs, rel, exact in walk(repo, (pat,) + pats, opts): |
1412 if okaytoremove(abs, rel, exact): | 1413 if okaytoremove(abs, rel, exact): |
1413 if ui.verbose or not exact: ui.status('removing %s\n' % rel) | 1414 if ui.verbose or not exact: ui.status('removing %s\n' % rel) |