Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 4523:b9d311928caf
Use absolute paths in docopy.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Fri, 08 Jun 2007 23:49:12 -0300 |
parents | 96d8a56d4ef9 |
children | 6c58139f4eaa |
comparison
equal
deleted
inserted
replaced
4522:591322269fed | 4523:b9d311928caf |
---|---|
496 return abs | 496 return abs |
497 | 497 |
498 # origsrc: hgsep | 498 # origsrc: hgsep |
499 # abssrc: hgsep | 499 # abssrc: hgsep |
500 # relsrc: ossep | 500 # relsrc: ossep |
501 # target: ossep | 501 # otarget: ossep |
502 def copy(origsrc, abssrc, relsrc, target, exact): | 502 def copy(origsrc, abssrc, relsrc, otarget, exact): |
503 abstarget = util.canonpath(repo.root, cwd, target) | 503 abstarget = util.canonpath(repo.root, cwd, otarget) |
504 reltarget = util.pathto(repo.root, cwd, abstarget) | 504 reltarget = util.pathto(repo.root, cwd, abstarget) |
505 prevsrc = targets.get(abstarget) | 505 prevsrc = targets.get(abstarget) |
506 src = repo.wjoin(abssrc) | |
507 target = repo.wjoin(abstarget) | |
506 if prevsrc is not None: | 508 if prevsrc is not None: |
507 ui.warn(_('%s: not overwriting - %s collides with %s\n') % | 509 ui.warn(_('%s: not overwriting - %s collides with %s\n') % |
508 (reltarget, util.localpath(abssrc), | 510 (reltarget, util.localpath(abssrc), |
509 util.localpath(prevsrc))) | 511 util.localpath(prevsrc))) |
510 return | 512 return |
511 if (not opts['after'] and os.path.exists(reltarget) or | 513 if (not opts['after'] and os.path.exists(target) or |
512 opts['after'] and repo.dirstate.state(abstarget) not in '?ar'): | 514 opts['after'] and repo.dirstate.state(abstarget) not in '?ar'): |
513 if not opts['force']: | 515 if not opts['force']: |
514 ui.warn(_('%s: not overwriting - file exists\n') % | 516 ui.warn(_('%s: not overwriting - file exists\n') % |
515 reltarget) | 517 reltarget) |
516 return | 518 return |
517 if not opts['after'] and not opts.get('dry_run'): | 519 if not opts['after'] and not opts.get('dry_run'): |
518 os.unlink(reltarget) | 520 os.unlink(target) |
519 if opts['after']: | 521 if opts['after']: |
520 if not os.path.exists(reltarget): | 522 if not os.path.exists(target): |
521 return | 523 return |
522 else: | 524 else: |
523 targetdir = os.path.dirname(reltarget) or '.' | 525 targetdir = os.path.dirname(target) or '.' |
524 if not os.path.isdir(targetdir) and not opts.get('dry_run'): | 526 if not os.path.isdir(targetdir) and not opts.get('dry_run'): |
525 os.makedirs(targetdir) | 527 os.makedirs(targetdir) |
526 try: | 528 try: |
527 restore = repo.dirstate.state(abstarget) == 'r' | 529 restore = repo.dirstate.state(abstarget) == 'r' |
528 if restore and not opts.get('dry_run'): | 530 if restore and not opts.get('dry_run'): |
529 repo.undelete([abstarget], wlock) | 531 repo.undelete([abstarget], wlock) |
530 try: | 532 try: |
531 if not opts.get('dry_run'): | 533 if not opts.get('dry_run'): |
532 util.copyfile(relsrc, reltarget) | 534 util.copyfile(src, target) |
533 restore = False | 535 restore = False |
534 finally: | 536 finally: |
535 if restore: | 537 if restore: |
536 repo.remove([abstarget], wlock=wlock) | 538 repo.remove([abstarget], wlock=wlock) |
537 except IOError, inst: | 539 except IOError, inst: |