[PATCH] evolve: wrap setparents calls in begin/endparentchange

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Sep 17 18:21:16 CDT 2014



On 09/17/2014 01:39 PM, Siddharth Agarwal wrote:
> On 09/17/2014 01:39 PM, Siddharth Agarwal wrote:
>> # HG changeset patch
>> # User Siddharth Agarwal <sid0 at fb.com>
>> # Date 1410986304 25200
>> #      Wed Sep 17 13:38:24 2014 -0700
>> # Node ID c3e23fbf7bd71300f19522d583ab8fe50916b7f7
>> # Parent  6328e005b6c8f3f080bae829417ec195827165fb
>> evolve: wrap setparents calls in begin/endparentchange

pushed thanks

>
> Forgot to flag this [evolve].
>
>>
>> Mercurial rev d259322a394b added a requirement to wrap any
>> dirstate.setparents
>> calls and their associated dirstate changes in begin/endparentchange.
>>
>> diff --git a/hgext/evolve.py b/hgext/evolve.py
>> --- a/hgext/evolve.py
>> +++ b/hgext/evolve.py
>> @@ -1451,7 +1451,9 @@
>>       finally:
>>           tr.release()
>>       # reroute the working copy parent to the new changeset
>> +    repo.dirstate.beginparentchange()
>>       repo.dirstate.setparents(newid, node.nullid)
>> +    repo.dirstate.endparentchange()
>>   def _solvedivergent(ui, repo, divergent, dryrun=False, confirm=False,
>>                       progresscb=None):
>> @@ -1539,7 +1541,9 @@
>>       if progresscb: progresscb()
>>       tr = repo.transaction('stabilize-divergent')
>>       try:
>> +        repo.dirstate.beginparentchange()
>>           repo.dirstate.setparents(divergent.node(), node.nullid)
>> +        repo.dirstate.endparentchange()
>>           oldlen = len(repo)
>>           amend(ui, repo, message='', logfile='')
>>           if oldlen == len(repo):
>> @@ -1988,8 +1992,10 @@
>>           # Move local changes on filtered changeset
>>           obsolete.createmarkers(repo, [(old, (repo[newid],))])
>>           phases.retractboundary(repo, tr, oldphase, [newid])
>> +        repo.dirstate.beginparentchange()
>>           repo.dirstate.setparents(newid, node.nullid)
>>           _uncommitdirstate(repo, old, match)
>> +        repo.dirstate.endparentchange()
>>           updatebookmarks(newid)
>>           if not repo[newid].files():
>>               ui.warn(_("new changeset is empty\n"))
>> @@ -2075,7 +2081,9 @@
>>                       obsolete.createmarkers(repo, [(ctx, (repo[new],))])
>>                   phases.retractboundary(repo, tr, ctx.phase(), [new])
>>                   if ctx in repo[None].parents():
>> +                    repo.dirstate.beginparentchange()
>>                       repo.dirstate.setparents(new, node.nullid)
>> +                    repo.dirstate.endparentchange()
>>               tr.close()
>>           finally:
>>               tr.release()
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at selenic.com
>> http://selenic.com/mailman/listinfo/mercurial-devel
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list