Mercurial > hg
changeset 18035:5881d5b7552f
merge: refactor action calculation into function
This pulls the code used to calculate the changes that need to happen
during merge.update() into a separate function. This is not useful on
its own, but is instead preparatory to performing grafts in memory
when there are no potential conflicts.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Tue, 04 Dec 2012 12:54:18 -0800 |
parents | 1a570f04de07 |
children | 8b846dbc57b6 |
files | mercurial/merge.py |
diffstat | 1 files changed, 21 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/merge.py Mon Dec 03 14:21:45 2012 -0800 +++ b/mercurial/merge.py Tue Dec 04 12:54:18 2012 -0800 @@ -448,6 +448,26 @@ return updated, merged, removed, unresolved +def calculateupdates(repo, tctx, mctx, ancestor, branchmerge, force, partial): + "Calculate the actions needed to merge mctx into tctx" + action = [] + folding = not util.checkcase(repo.path) + if folding: + # collision check is not needed for clean update + if (not branchmerge and + (force or not tctx.dirty(missing=True, branch=False))): + _checkcollision(mctx, None) + else: + _checkcollision(mctx, tctx) + if not force: + _checkunknown(repo, tctx, mctx) + action += _forgetremoved(tctx, mctx, branchmerge) + action += manifestmerge(repo, tctx, mctx, + ancestor, + force and not branchmerge, + partial) + return action + def recordupdates(repo, action, branchmerge): "record merge actions to the dirstate" @@ -609,19 +629,7 @@ pa = p1 ### calculate phase - action = [] - folding = not util.checkcase(repo.path) - if folding: - # collision check is not needed for clean update - if (not branchmerge and - (force or not wc.dirty(missing=True, branch=False))): - _checkcollision(p2, None) - else: - _checkcollision(p2, (wc, pa)) - if not force: - _checkunknown(repo, wc, p2) - action += _forgetremoved(wc, p2, branchmerge) - action += manifestmerge(repo, wc, p2, pa, overwrite, partial) + action = calculateupdates(repo, wc, p2, pa, branchmerge, force, partial) ### apply phase if not branchmerge: # just jump to the new rev