Mercurial > hg
changeset 14518:a67e866f46f9
workingctx: eliminate remove function
Inlining it into it's last remaining call place in cmdutil.copy.
Note that cmdutil.copy is called with the wlock already held, so no additional
locking is needed to call util.unlinkpath.
We do not need to wrap the util.unlinkpath call into a try block, because
at that point we already know whether abssrc exists or not -- thanks to the
preceding util.copyfile call. Adding a new local 'srcexists' in cmdutil.copy
for that purpose.
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Thu, 02 Jun 2011 00:33:33 +0200 |
parents | 5a931246afc5 |
children | 28682c7e7479 |
files | mercurial/cmdutil.py mercurial/context.py |
diffstat | 2 files changed, 5 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Thu Jun 02 19:43:17 2011 +0200 +++ b/mercurial/cmdutil.py Thu Jun 02 00:33:33 2011 +0200 @@ -281,9 +281,11 @@ if not os.path.isdir(targetdir): os.makedirs(targetdir) util.copyfile(src, target) + srcexists = True except IOError, inst: if inst.errno == errno.ENOENT: ui.warn(_('%s: deleted in working copy\n') % relsrc) + srcexists = False else: ui.warn(_('%s: cannot copy - %s\n') % (relsrc, inst.strerror)) @@ -301,7 +303,9 @@ scmutil.dirstatecopy(ui, repo, wctx, abssrc, abstarget, dryrun=dryrun, cwd=cwd) if rename and not dryrun: - wctx.remove([abssrc], not after) + if not after and srcexists: + util.unlinkpath(repo.wjoin(abssrc)) + wctx.forget([abssrc]) # pat: ossep # dest ossep
--- a/mercurial/context.py Thu Jun 02 19:43:17 2011 +0200 +++ b/mercurial/context.py Thu Jun 02 00:33:33 2011 +0200 @@ -853,20 +853,6 @@ *[p.rev() for p in self._parents]): yield changectx(self._repo, a) - def remove(self, list, unlink=False): - wlock = self._repo.wlock() - try: - if unlink: - for f in list: - try: - util.unlinkpath(self._repo.wjoin(f)) - except OSError, inst: - if inst.errno != errno.ENOENT: - raise - self.forget(list) - finally: - wlock.release() - def undelete(self, list): pctxs = self.parents() wlock = self._repo.wlock()