hgext/record.py
changeset 6965 98abbcf9fbdf
parent 6951 c8c9ce0ed3ee
child 7015 6651de7176a0
equal deleted inserted replaced
6964:b3239badc711 6965:98abbcf9fbdf
   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