equal
deleted
inserted
replaced
450 if f not in modified: |
450 if f not in modified: |
451 continue |
451 continue |
452 fd, tmpname = tempfile.mkstemp(prefix=f.replace('/', '_')+'.', |
452 fd, tmpname = tempfile.mkstemp(prefix=f.replace('/', '_')+'.', |
453 dir=backupdir) |
453 dir=backupdir) |
454 os.close(fd) |
454 os.close(fd) |
455 ui.debug('backup %r as %r\n' % (f, tmpname)) |
455 ui.debug(_('backup %r as %r\n') % (f, tmpname)) |
456 util.copyfile(repo.wjoin(f), tmpname) |
456 util.copyfile(repo.wjoin(f), tmpname) |
457 backups[f] = tmpname |
457 backups[f] = tmpname |
458 |
458 |
459 fp = cStringIO.StringIO() |
459 fp = cStringIO.StringIO() |
460 for c in chunks: |
460 for c in chunks: |
468 hg.revert(repo, repo.dirstate.parents()[0], backups.has_key) |
468 hg.revert(repo, repo.dirstate.parents()[0], backups.has_key) |
469 |
469 |
470 # 3b. (apply) |
470 # 3b. (apply) |
471 if dopatch: |
471 if dopatch: |
472 try: |
472 try: |
473 ui.debug('applying patch\n') |
473 ui.debug(_('applying patch\n')) |
474 ui.debug(fp.getvalue()) |
474 ui.debug(fp.getvalue()) |
475 patch.internalpatch(fp, ui, 1, repo.root) |
475 patch.internalpatch(fp, ui, 1, repo.root) |
476 except patch.PatchError, err: |
476 except patch.PatchError, err: |
477 s = str(err) |
477 s = str(err) |
478 if s: |
478 if s: |
496 return 0 |
496 return 0 |
497 finally: |
497 finally: |
498 # 5. finally restore backed-up files |
498 # 5. finally restore backed-up files |
499 try: |
499 try: |
500 for realname, tmpname in backups.iteritems(): |
500 for realname, tmpname in backups.iteritems(): |
501 ui.debug('restoring %r to %r\n' % (tmpname, realname)) |
501 ui.debug(_('restoring %r to %r\n') % (tmpname, realname)) |
502 util.copyfile(tmpname, repo.wjoin(realname)) |
502 util.copyfile(tmpname, repo.wjoin(realname)) |
503 os.unlink(tmpname) |
503 os.unlink(tmpname) |
504 os.rmdir(backupdir) |
504 os.rmdir(backupdir) |
505 except OSError: |
505 except OSError: |
506 pass |
506 pass |