Mercurial > hg
changeset 35284:1b03407e808d
merge: skip subrepo state, update hooks, and updating the dirstate in IMM
Differential Revision: https://phab.mercurial-scm.org/D1215
author | Phil Cohen <phillco@fb.com> |
---|---|
date | Fri, 01 Dec 2017 00:07:23 -0800 |
parents | 46510597d266 |
children | 3ceebf497057 |
files | mercurial/merge.py |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Fri Dec 01 00:07:23 2017 -0800 +++ b/mercurial/merge.py Fri Dec 01 00:07:23 2017 -0800 @@ -1839,8 +1839,9 @@ if not force and (wc.files() or wc.deleted()): raise error.Abort(_("uncommitted changes"), hint=_("use 'hg status' to list changes")) - for s in sorted(wc.substate): - wc.sub(s).bailifchanged() + if not wc.isinmemory(): + for s in sorted(wc.substate): + wc.sub(s).bailifchanged() elif not overwrite: if p1 == p2: # no-op update @@ -1955,7 +1956,7 @@ ### apply phase if not branchmerge: # just jump to the new rev fp1, fp2, xp1, xp2 = fp2, nullid, xp2, '' - if not partial: + if not partial and not wc.isinmemory(): repo.hook('preupdate', throw=True, parent1=xp1, parent2=xp2) # note that we're in the middle of an update repo.vfs.write('updatestate', p2.hex()) @@ -1994,7 +1995,7 @@ stats = applyupdates(repo, actions, wc, p2, overwrite, labels=labels) - if not partial: + if not partial and not wc.isinmemory(): with repo.dirstate.parentchange(): repo.setparents(fp1, fp2) recordupdates(repo, actions, branchmerge)