mercurial/commands.py
changeset 2415 dec79ed61ee1
parent 2414 86e07466bcfc
child 2416 04736f38d74f
equal deleted inserted replaced
2414:86e07466bcfc 2415:dec79ed61ee1
  2415             update[abs] = 1
  2415             update[abs] = 1
  2416             if dobackup and not opts['no_backup'] and os.path.exists(rel):
  2416             if dobackup and not opts['no_backup'] and os.path.exists(rel):
  2417                 bakname = "%s.orig" % rel
  2417                 bakname = "%s.orig" % rel
  2418                 ui.note(_('saving current version of %s as %s\n') %
  2418                 ui.note(_('saving current version of %s as %s\n') %
  2419                         (rel, bakname))
  2419                         (rel, bakname))
  2420                 shutil.copyfile(rel, bakname)
  2420                 if not opts.get('dry_run'):
  2421                 shutil.copymode(rel, bakname)
  2421                     shutil.copyfile(rel, bakname)
       
  2422                     shutil.copymode(rel, bakname)
  2422             if ui.verbose or not exact:
  2423             if ui.verbose or not exact:
  2423                 ui.status(xlist[1] % rel)
  2424                 ui.status(xlist[1] % rel)
  2424         for table, hitlist, misslist, backuphit, backupmiss in disptable:
  2425         for table, hitlist, misslist, backuphit, backupmiss in disptable:
  2425             if abs not in table: continue
  2426             if abs not in table: continue
  2426             # file has changed in dirstate
  2427             # file has changed in dirstate
  2447                     if pmf[abs] != mfentry:
  2448                     if pmf[abs] != mfentry:
  2448                         handle(revert, False)
  2449                         handle(revert, False)
  2449                 else:
  2450                 else:
  2450                     handle(remove, False)
  2451                     handle(remove, False)
  2451 
  2452 
  2452     repo.dirstate.forget(forget[0])
  2453     if not opts.get('dry_run'):
  2453     r = repo.update(node, False, True, update.has_key, False, wlock=wlock,
  2454         repo.dirstate.forget(forget[0])
  2454                     show_stats=False)
  2455         r = repo.update(node, False, True, update.has_key, False, wlock=wlock,
  2455     repo.dirstate.update(add[0], 'a')
  2456                         show_stats=False)
  2456     repo.dirstate.update(undelete[0], 'n')
  2457         repo.dirstate.update(add[0], 'a')
  2457     repo.dirstate.update(remove[0], 'r')
  2458         repo.dirstate.update(undelete[0], 'n')
  2458     return r
  2459         repo.dirstate.update(remove[0], 'r')
       
  2460         return r
  2459 
  2461 
  2460 def rollback(ui, repo):
  2462 def rollback(ui, repo):
  2461     """roll back the last transaction in this repository
  2463     """roll back the last transaction in this repository
  2462 
  2464 
  2463     Roll back the last transaction in this repository, restoring the
  2465     Roll back the last transaction in this repository, restoring the
  3073     "^revert":
  3075     "^revert":
  3074         (revert,
  3076         (revert,
  3075          [('r', 'rev', '', _('revision to revert to')),
  3077          [('r', 'rev', '', _('revision to revert to')),
  3076           ('', 'no-backup', None, _('do not save backup copies of files')),
  3078           ('', 'no-backup', None, _('do not save backup copies of files')),
  3077           ('I', 'include', [], _('include names matching given patterns')),
  3079           ('I', 'include', [], _('include names matching given patterns')),
  3078           ('X', 'exclude', [], _('exclude names matching given patterns'))],
  3080           ('X', 'exclude', [], _('exclude names matching given patterns')),
       
  3081           ('n', 'dry-run', None, _('print what would be done'))],
  3079          _('hg revert [-r REV] [NAME]...')),
  3082          _('hg revert [-r REV] [NAME]...')),
  3080     "rollback": (rollback, [], _('hg rollback')),
  3083     "rollback": (rollback, [], _('hg rollback')),
  3081     "root": (root, [], _('hg root')),
  3084     "root": (root, [], _('hg root')),
  3082     "^serve":
  3085     "^serve":
  3083         (serve,
  3086         (serve,