Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/merge.py @ 11454:9b0406b23be0 stable
merge: pass constant cset ancestor to fctx.ancestor
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Fri, 18 Jun 2010 08:49:24 +0200 |
parents | 51021f4c80b5 |
children | ad27428c59ce |
comparison
equal
deleted
inserted
replaced
11453:2ee26044d846 | 11454:9b0406b23be0 |
---|---|
240 return action | 240 return action |
241 | 241 |
242 def actionkey(a): | 242 def actionkey(a): |
243 return a[1] == 'r' and -1 or 0, a | 243 return a[1] == 'r' and -1 or 0, a |
244 | 244 |
245 def applyupdates(repo, action, wctx, mctx): | 245 def applyupdates(repo, action, wctx, mctx, actx): |
246 "apply the merge action list to the working directory" | 246 """apply the merge action list to the working directory |
247 | |
248 wctx is the working copy context | |
249 mctx is the context to be merged into the working copy | |
250 actx is the context of the common ancestor | |
251 """ | |
247 | 252 |
248 updated, merged, removed, unresolved = 0, 0, 0, 0 | 253 updated, merged, removed, unresolved = 0, 0, 0, 0 |
249 ms = mergestate(repo) | 254 ms = mergestate(repo) |
250 ms.reset(wctx.parents()[0].node()) | 255 ms.reset(wctx.parents()[0].node()) |
251 moves = [] | 256 moves = [] |
261 if f == '.hgsubstate': # merged internally | 266 if f == '.hgsubstate': # merged internally |
262 continue | 267 continue |
263 repo.ui.debug("preserving %s for resolve of %s\n" % (f, fd)) | 268 repo.ui.debug("preserving %s for resolve of %s\n" % (f, fd)) |
264 fcl = wctx[f] | 269 fcl = wctx[f] |
265 fco = mctx[f2] | 270 fco = mctx[f2] |
266 fca = fcl.ancestor(fco) or repo.filectx(f, fileid=nullrev) | 271 fca = fcl.ancestor(fco, actx) or repo.filectx(f, fileid=nullrev) |
267 ms.add(fcl, fco, fca, fd, flags) | 272 ms.add(fcl, fco, fca, fd, flags) |
268 if f != fd and move: | 273 if f != fd and move: |
269 moves.append(f) | 274 moves.append(f) |
270 | 275 |
271 # remove renamed files after safely stored | 276 # remove renamed files after safely stored |
503 if not branchmerge: # just jump to the new rev | 508 if not branchmerge: # just jump to the new rev |
504 fp1, fp2, xp1, xp2 = fp2, nullid, xp2, '' | 509 fp1, fp2, xp1, xp2 = fp2, nullid, xp2, '' |
505 if not partial: | 510 if not partial: |
506 repo.hook('preupdate', throw=True, parent1=xp1, parent2=xp2) | 511 repo.hook('preupdate', throw=True, parent1=xp1, parent2=xp2) |
507 | 512 |
508 stats = applyupdates(repo, action, wc, p2) | 513 stats = applyupdates(repo, action, wc, p2, pa) |
509 | 514 |
510 if not partial: | 515 if not partial: |
511 repo.dirstate.setparents(fp1, fp2) | 516 repo.dirstate.setparents(fp1, fp2) |
512 recordupdates(repo, action, branchmerge) | 517 recordupdates(repo, action, branchmerge) |
513 if not branchmerge and not fastforward: | 518 if not branchmerge and not fastforward: |