localrepo: create context used for actual commit earlier

localrepo.commit creates a workingctx, calls self.status, does some
munging on the changes status returns, does some validation on those
changes, and then creates a new workingctx from the changes.  This
moves the creation of the new workginctx ahead of some validation,
with the intention of refactoring some of that validation logic into
the workingctx, so that it can be reused elsewhere.
This commit is contained in:
David Schleimer 2013-02-08 05:36:07 -08:00
parent d86fa541fd
commit 6086bc3471

View File

@ -1230,6 +1230,8 @@ class localrepository(object):
elif f not in self.dirstate:
fail(f, _("file not tracked!"))
cctx = context.workingctx(self, text, user, date, extra, changes)
if (not force and not extra.get("close") and not merge
and not (changes[0] or changes[1] or changes[2])
and wctx.branch() == wctx.p1().branch()):
@ -1244,7 +1246,6 @@ class localrepository(object):
raise util.Abort(_("unresolved merge conflicts "
"(see hg help resolve)"))
cctx = context.workingctx(self, text, user, date, extra, changes)
if editor:
cctx._text = editor(self, cctx, subs)
edited = (text != cctx._text)