Mercurial > hg
changeset 32351:c568c187102f
merge: migrate to context manager for changing dirstate parents
author | Augie Fackler <augie@google.com> |
---|---|
date | Thu, 18 May 2017 17:11:24 -0400 |
parents | 9742f937c971 |
children | b2de7fced2fa |
files | mercurial/merge.py |
diffstat | 1 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Thu May 18 17:11:14 2017 -0400 +++ b/mercurial/merge.py Thu May 18 17:11:24 2017 -0400 @@ -1696,15 +1696,14 @@ stats = applyupdates(repo, actions, wc, p2, overwrite, labels=labels) if not partial: - repo.dirstate.beginparentchange() - repo.setparents(fp1, fp2) - recordupdates(repo, actions, branchmerge) - # update completed, clear state - util.unlink(repo.vfs.join('updatestate')) + with repo.dirstate.parentchange(): + repo.setparents(fp1, fp2) + recordupdates(repo, actions, branchmerge) + # update completed, clear state + util.unlink(repo.vfs.join('updatestate')) - if not branchmerge: - repo.dirstate.setbranch(p2.branch()) - repo.dirstate.endparentchange() + if not branchmerge: + repo.dirstate.setbranch(p2.branch()) if not partial: repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3]) @@ -1742,10 +1741,9 @@ parents.remove(pctx) pother = parents[0].node() - repo.dirstate.beginparentchange() - repo.setparents(repo['.'].node(), pother) - repo.dirstate.write(repo.currenttransaction()) - # fix up dirstate for copies and renames - copies.duplicatecopies(repo, ctx.rev(), pctx.rev()) - repo.dirstate.endparentchange() + with repo.dirstate.parentchange(): + repo.setparents(repo['.'].node(), pother) + repo.dirstate.write(repo.currenttransaction()) + # fix up dirstate for copies and renames + copies.duplicatecopies(repo, ctx.rev(), pctx.rev()) return stats