Mercurial > hg-stable
diff hgext/rebase.py @ 22405:6f63c47cbb86
dirstate: wrap setparent calls with begin/endparentchange (issue4353)
This wraps all the locations of dirstate.setparent with the appropriate
begin/endparentchange calls. This will prevent exceptions during those calls
from causing incoherent dirstates (issue4353).
author | Durham Goode <durham@fb.com> |
---|---|
date | Fri, 05 Sep 2014 11:36:20 -0700 |
parents | 0f0b204b399c |
children | 5f4934487382 |
line wrap: on
line diff
--- a/hgext/rebase.py Fri Sep 05 11:34:29 2014 -0700 +++ b/hgext/rebase.py Fri Sep 05 11:36:20 2014 -0700 @@ -366,7 +366,9 @@ editor=editor) else: # Skip commit if we are collapsing + repo.dirstate.beginparentchange() repo.setparents(repo[p1].node()) + repo.dirstate.endparentchange() newrev = None # Update the state if newrev is not None: @@ -472,7 +474,9 @@ def concludenode(repo, rev, p1, p2, commitmsg=None, editor=None, extrafn=None): 'Commit the changes and store useful information in extra' try: + repo.dirstate.beginparentchange() repo.setparents(repo[p1].node(), repo[p2].node()) + repo.dirstate.endparentchange() ctx = repo[rev] if commitmsg is None: commitmsg = ctx.description()