Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 2415:dec79ed61ee1
revert: add -n/--dry-run option
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Fri, 09 Jun 2006 09:06:40 -0700 |
parents | 86e07466bcfc |
children | 04736f38d74f |
comparison
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, |