Mercurial > hg
diff hgext/histedit.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 | 897041f6b025 |
children | 810d37485e85 |
line wrap: on
line diff
--- a/hgext/histedit.py Fri Sep 05 11:34:29 2014 -0700 +++ b/hgext/histedit.py Fri Sep 05 11:36:20 2014 -0700 @@ -221,6 +221,7 @@ cmdutil.revert(ui, repo, ctx, (wcpar, node.nullid), all=True) stats = None else: + repo.dirstate.beginparentchange() try: # ui.forcemerge is an internal variable, do not document repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), @@ -230,6 +231,7 @@ finally: repo.ui.setconfig('ui', 'forcemerge', '', 'histedit') repo.setparents(wcpar, node.nullid) + repo.dirstate.endparentchange() repo.dirstate.write() # fix up dirstate for copies and renames cmdutil.duplicatecopies(repo, ctx.rev(), ctx.p1().rev())