# HG changeset patch # User Sushil khanchi # Date 1554208303 -19800 # Node ID cc4506838589a1b40fc52d4aa9b99c8d7ea4f276 # Parent 6feeaf00db44e26f87f47c790128f990a84c894e evolve: remove tmpctx arg from _resolvephasedivergent() Before this patch, in _resolvephasedivergent() function we were passing an optional argument "tmpctx" which was used to store a rebased version of bumped if required. But for sake of simplicity we can achieve the same results even without passing this "tmpctx" into that function. No changes in test files demonstrate that this patch don't break anything. diff -r 6feeaf00db44 -r cc4506838589 hgext3rd/evolve/evolvecmd.py --- a/hgext3rd/evolve/evolvecmd.py Fri Mar 29 11:48:36 2019 +0100 +++ b/hgext3rd/evolve/evolvecmd.py Tue Apr 02 18:01:43 2019 +0530 @@ -229,7 +229,6 @@ return (False, ".") if progresscb: progresscb() - tmpctx = bumped # Checking for whether the phase-divergent changeset has common parents as # it's precursors. Phase-divergent changeset and precursor having different @@ -242,13 +241,14 @@ repo.ui.status( _('rebasing to destination parent: %s\n') % prec.p1()) try: - tmpid = relocate(repo, bumped, prec.p1(), evolvestate, - category='phasedivergent') - if tmpid is not None: - tmpctx = repo[tmpid] - obsolete.createmarkers(repo, [(bumped, (tmpctx,))], + newnode = relocate(repo, bumped, prec.p1(), evolvestate, + category='phasedivergent') + if newnode is not None: + new = repo[newnode] + obsolete.createmarkers(repo, [(bumped, (new,))], operation='evolve') - evolvestate['temprevs'].append(tmpid) + bumped = new + evolvestate['temprevs'].append(newnode) except MergeFailure: evolvestate['current'] = bumped.hex() evolvestate['precursor'] = prec.hex() @@ -256,36 +256,26 @@ raise error.InterventionRequired(_("fix conflicts and see `hg help " "evolve.interrupted`")) - return _resolvephasedivergent(ui, repo, prec, bumped, tmpctx) + return _resolvephasedivergent(ui, repo, prec, bumped) -def _resolvephasedivergent(ui, repo, prec, bumped, tmpctx=None): +def _resolvephasedivergent(ui, repo, prec, bumped): """final step of a phase divergence resolution This will create a new changesets (or nothing when applicable), the two changesets needs to be on the same parents. - - XXX we should deal with all tmpctx business before callin this function and - pass tmpctx as bumped directly """ - tr = repo.currenttransaction() assert tr is not None - bmupdate = _bookmarksupdater(repo, bumped.node(), tr) - newid = None - replacementnode = None - - # function to update the bookmark from the rebased changeset to new resolved - # changeset - rebasedbmupdate = None - if tmpctx and tmpctx.node() != bumped.node(): - rebasedbmupdate = _bookmarksupdater(repo, tmpctx.node(), tr) - bumped = tmpctx cl = repo.changelog prec_parent = cl.parentrevs(prec.rev()) bump_parent = cl.parentrevs(bumped.rev()) assert prec_parent == bump_parent, (prec_parent, bump_parent) + bmupdate = _bookmarksupdater(repo, bumped.node(), tr) + newid = None + replacementnode = None + # Create the new commit context files = set() copied = copies.pathcopies(prec, bumped) @@ -326,17 +316,14 @@ replacementnode = newid if newid is None: repo.ui.status(_('no changes to commit\n')) - obsolete.createmarkers(repo, [(tmpctx, ())], operation='evolve') + obsolete.createmarkers(repo, [(bumped, ())], operation='evolve') newid = prec.node() else: repo.ui.status(_('committed as %s\n') % nodemod.short(newid)) phases.retractboundary(repo, tr, bumped.phase(), [newid]) - obsolete.createmarkers(repo, [(tmpctx, (repo[newid],))], + obsolete.createmarkers(repo, [(bumped, (repo[newid],))], flag=obsolete.bumpedfix, operation='evolve') bmupdate(newid) - # if rebased happened, update bookmarks from there too - if rebasedbmupdate: - rebasedbmupdate(newid) # reroute the working copy parent to the new changeset with repo.dirstate.parentchange(): repo.dirstate.setparents(newid, nodemod.nullid) @@ -580,8 +567,7 @@ return (res, newnode) prec = publicdiv bumped = repo[newnode] - return _resolvephasedivergent(ui, repo, prec=prec, bumped=bumped, - tmpctx=bumped) + return _resolvephasedivergent(ui, repo, prec=prec, bumped=bumped) def _mergecontentdivergents(repo, progresscb, divergent, other, base, evolvestate): @@ -1996,8 +1982,7 @@ else: prec = repo[publicnode] bumped = repo[newnode] - ret = _resolvephasedivergent(ui, repo, prec=prec, - bumped=bumped, tmpctx=bumped) + ret = _resolvephasedivergent(ui, repo, prec=prec, bumped=bumped) tr.close() return ret finally: @@ -2023,7 +2008,7 @@ # now continuing the phase-divergence resolution part prec = repo[evolvestate['precursor']] - retvalue = _resolvephasedivergent(ui, repo, prec, ctx, newctx) + retvalue = _resolvephasedivergent(ui, repo, prec, newctx) evolvestate['replacements'][ctx.node()] = retvalue[1] tr.close() finally: