Mercurial > hg
changeset 8416:9dfee83c93c8
commit: hoist the rest of the dirstate manipulation out of commitctx
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 14 May 2009 13:24:39 -0500 |
parents | 221a18019b2b |
children | 39cf453da958 |
files | mercurial/localrepo.py |
diffstat | 1 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/localrepo.py Thu May 14 13:24:39 2009 -0500 +++ b/mercurial/localrepo.py Thu May 14 13:24:39 2009 -0500 @@ -814,6 +814,14 @@ extra, changes) ret = self.commitctx(wctx, editor, True) ms.reset() + + # update dirstate + for f in changes[0] + changes[1]: + self.dirstate.normal(f) + for f in changes[2]: + self.dirstate.forget(f) + self.dirstate.setparents(ret) + return ret finally: @@ -821,7 +829,7 @@ self.dirstate.invalidate() # didn't successfully commit wlock.release() - def commitctx(self, ctx, editor=None, working=False): + def commitctx(self, ctx, editor=None, error=False): """Add a new revision to current repository. Revision information is passed via the context argument. @@ -855,11 +863,8 @@ new[f] = self._filecommit(fctx, m1, m2, linkrev, trp, changed) m1.set(f, fctx.flags()) - if working: - self.dirstate.normal(f) - except (OSError, IOError): - if working: + if error: self.ui.warn(_("trouble committing %s!\n") % f) raise else: @@ -906,11 +911,6 @@ if self.branchcache: self.branchtags() - if working: - self.dirstate.setparents(n) - for f in removed: - self.dirstate.forget(f) - self.hook("commit", node=hex(n), parent1=xp1, parent2=xp2) return n finally: