2468 # (<list of file>, message>) tuple |
2468 # (<list of file>, message>) tuple |
2469 actions = {'revert': ([], _('reverting %s\n')), |
2469 actions = {'revert': ([], _('reverting %s\n')), |
2470 'add': ([], _('adding %s\n')), |
2470 'add': ([], _('adding %s\n')), |
2471 'remove': ([], removeforget), |
2471 'remove': ([], removeforget), |
2472 'undelete': ([], _('undeleting %s\n')), |
2472 'undelete': ([], _('undeleting %s\n')), |
2473 'noop': None, |
2473 'noop': (None, None), |
2474 } |
2474 } |
2475 |
2475 |
2476 |
2476 |
2477 # should we do a backup? |
2477 # should we do a backup? |
2478 backup = not opts.get('no_backup') |
2478 backup = not opts.get('no_backup') |
2495 # target file to be touch on disk (relative to cwd) |
2495 # target file to be touch on disk (relative to cwd) |
2496 target = repo.wjoin(abs) |
2496 target = repo.wjoin(abs) |
2497 # search the entry in the dispatch table. |
2497 # search the entry in the dispatch table. |
2498 # if the file is in any of these sets, it was touched in the working |
2498 # if the file is in any of these sets, it was touched in the working |
2499 # directory parent and we are sure it needs to be reverted. |
2499 # directory parent and we are sure it needs to be reverted. |
2500 for table, xlist, dobackup in disptable: |
2500 for table, (xlist, msg), dobackup in disptable: |
2501 if abs not in table: |
2501 if abs not in table: |
2502 continue |
2502 continue |
2503 if xlist is None: |
2503 if xlist is None: |
2504 if exact: |
2504 if exact: |
2505 ui.warn(_('no changes needed to %s\n') % rel) |
2505 ui.warn(_('no changes needed to %s\n') % rel) |
2506 break |
2506 break |
2507 xlist[0].append(abs) |
2507 xlist.append(abs) |
2508 if (dobackup and os.path.lexists(target) and |
2508 if (dobackup and os.path.lexists(target) and |
2509 abs in ctx and repo[None][abs].cmp(ctx[abs])): |
2509 abs in ctx and repo[None][abs].cmp(ctx[abs])): |
2510 bakname = "%s.orig" % rel |
2510 bakname = "%s.orig" % rel |
2511 ui.note(_('saving current version of %s as %s\n') % |
2511 ui.note(_('saving current version of %s as %s\n') % |
2512 (rel, bakname)) |
2512 (rel, bakname)) |
2513 if not opts.get('dry_run'): |
2513 if not opts.get('dry_run'): |
2514 util.rename(target, bakname) |
2514 util.rename(target, bakname) |
2515 if ui.verbose or not exact: |
2515 if ui.verbose or not exact: |
2516 msg = xlist[1] |
|
2517 if not isinstance(msg, basestring): |
2516 if not isinstance(msg, basestring): |
2518 msg = msg(abs) |
2517 msg = msg(abs) |
2519 ui.status(msg % rel) |
2518 ui.status(msg % rel) |
2520 break |
2519 break |
2521 else: |
2520 else: |