--- a/mercurial/commands.py Tue Aug 15 23:37:37 2006 +0300
+++ b/mercurial/commands.py Wed Aug 16 19:46:18 2006 -0700
@@ -1683,44 +1683,7 @@
ui.debug(_('message:\n%s\n') % message)
files, fuzz = patch.patch(tmpname, ui, strip=strip, cwd=repo.root)
- removes = []
- if len(files) > 0:
- cfiles = files.keys()
- copies = []
- copts = {'after': False, 'force': False}
- cwd = repo.getcwd()
- if cwd:
- cfiles = [util.pathto(cwd, f) for f in files.keys()]
- for f in files:
- ctype, gp = files[f]
- if ctype == 'RENAME':
- copies.append((gp.oldpath, gp.path, gp.copymod))
- removes.append(gp.oldpath)
- elif ctype == 'COPY':
- copies.append((gp.oldpath, gp.path, gp.copymod))
- elif ctype == 'DELETE':
- removes.append(gp.path)
- for src, dst, after in copies:
- absdst = os.path.join(repo.root, dst)
- if not after and os.path.exists(absdst):
- raise util.Abort(_('patch creates existing file %s') % dst)
- if cwd:
- src, dst = [util.pathto(cwd, f) for f in (src, dst)]
- copts['after'] = after
- errs, copied = docopy(ui, repo, (src, dst), copts, wlock=wlock)
- if errs:
- raise util.Abort(errs)
- if removes:
- repo.remove(removes, True, wlock=wlock)
- for f in files:
- ctype, gp = files[f]
- if gp and gp.mode:
- x = gp.mode & 0100 != 0
- dst = os.path.join(repo.root, gp.path)
- util.set_exec(dst, x)
- cmdutil.addremove(repo, cfiles, wlock=wlock)
- files = files.keys()
- files.extend([r for r in removes if r not in files])
+ files = patch.updatedir(ui, repo, files, wlock=wlock)
repo.commit(files, message, user, date, wlock=wlock, lock=lock)
finally:
os.unlink(tmpname)