equal
deleted
inserted
replaced
6 # of the GNU General Public License, incorporated herein by reference. |
6 # of the GNU General Public License, incorporated herein by reference. |
7 |
7 |
8 from demandload import demandload |
8 from demandload import demandload |
9 from node import * |
9 from node import * |
10 from i18n import gettext as _ |
10 from i18n import gettext as _ |
11 demandload(globals(), "os re sys signal shutil imp urllib pdb shlex") |
11 demandload(globals(), "os re sys signal imp urllib pdb shlex") |
12 demandload(globals(), "fancyopts ui hg util lock revlog templater bundlerepo") |
12 demandload(globals(), "fancyopts ui hg util lock revlog templater bundlerepo") |
13 demandload(globals(), "difflib patch tempfile time") |
13 demandload(globals(), "difflib patch tempfile time") |
14 demandload(globals(), "traceback errno version atexit sets bz2") |
14 demandload(globals(), "traceback errno version atexit sets bz2") |
15 demandload(globals(), "archival changegroup cmdutil hgweb.server sshserver") |
15 demandload(globals(), "archival changegroup cmdutil hgweb.server sshserver") |
16 |
16 |
1002 restore = repo.dirstate.state(abstarget) == 'r' |
1002 restore = repo.dirstate.state(abstarget) == 'r' |
1003 if restore and not opts.get('dry_run'): |
1003 if restore and not opts.get('dry_run'): |
1004 repo.undelete([abstarget], wlock) |
1004 repo.undelete([abstarget], wlock) |
1005 try: |
1005 try: |
1006 if not opts.get('dry_run'): |
1006 if not opts.get('dry_run'): |
1007 shutil.copyfile(relsrc, reltarget) |
1007 util.copyfile(relsrc, reltarget) |
1008 shutil.copymode(relsrc, reltarget) |
|
1009 restore = False |
1008 restore = False |
1010 finally: |
1009 finally: |
1011 if restore: |
1010 if restore: |
1012 repo.remove([abstarget], wlock) |
1011 repo.remove([abstarget], wlock) |
1013 except shutil.Error, inst: |
|
1014 raise util.Abort(str(inst)) |
|
1015 except IOError, inst: |
1012 except IOError, inst: |
1016 if inst.errno == errno.ENOENT: |
1013 if inst.errno == errno.ENOENT: |
1017 ui.warn(_('%s: deleted in working copy\n') % relsrc) |
1014 ui.warn(_('%s: deleted in working copy\n') % relsrc) |
1018 else: |
1015 else: |
1019 ui.warn(_('%s: cannot copy - %s\n') % |
1016 ui.warn(_('%s: cannot copy - %s\n') % |
2417 if dobackup and not opts['no_backup'] and os.path.exists(rel): |
2414 if dobackup and not opts['no_backup'] and os.path.exists(rel): |
2418 bakname = "%s.orig" % rel |
2415 bakname = "%s.orig" % rel |
2419 ui.note(_('saving current version of %s as %s\n') % |
2416 ui.note(_('saving current version of %s as %s\n') % |
2420 (rel, bakname)) |
2417 (rel, bakname)) |
2421 if not opts.get('dry_run'): |
2418 if not opts.get('dry_run'): |
2422 shutil.copyfile(rel, bakname) |
2419 util.copyfile(rel, bakname) |
2423 shutil.copymode(rel, bakname) |
|
2424 if ui.verbose or not exact: |
2420 if ui.verbose or not exact: |
2425 ui.status(xlist[1] % rel) |
2421 ui.status(xlist[1] % rel) |
2426 for table, hitlist, misslist, backuphit, backupmiss in disptable: |
2422 for table, hitlist, misslist, backuphit, backupmiss in disptable: |
2427 if abs not in table: continue |
2423 if abs not in table: continue |
2428 # file has changed in dirstate |
2424 # file has changed in dirstate |