2248 |
2248 |
2249 stats = update(repo, ctx.node(), True, True, pctx.node(), |
2249 stats = update(repo, ctx.node(), True, True, pctx.node(), |
2250 mergeancestor=mergeancestor, labels=labels) |
2250 mergeancestor=mergeancestor, labels=labels) |
2251 |
2251 |
2252 |
2252 |
|
2253 potherp1 = False |
2253 if keepconflictparent and stats.unresolvedcount: |
2254 if keepconflictparent and stats.unresolvedcount: |
2254 pother = ctx.node() |
2255 pother = ctx.node() |
2255 else: |
2256 else: |
2256 pother = nullid |
2257 pother = nullid |
2257 parents = ctx.parents() |
2258 parents = ctx.parents() |
2258 if keepparent and len(parents) == 2 and pctx in parents: |
2259 if keepparent and len(parents) == 2 and pctx in parents: |
|
2260 if pctx == parents[0]: |
|
2261 potherp1 = True |
2259 parents.remove(pctx) |
2262 parents.remove(pctx) |
2260 pother = parents[0].node() |
2263 pother = parents[0].node() |
2261 |
2264 |
2262 with repo.dirstate.parentchange(): |
2265 with repo.dirstate.parentchange(): |
2263 repo.setparents(repo['.'].node(), pother) |
2266 if potherp1: |
|
2267 repo.setparents(pother, repo['.'].node()) |
|
2268 else: |
|
2269 repo.setparents(repo['.'].node(), pother) |
2264 repo.dirstate.write(repo.currenttransaction()) |
2270 repo.dirstate.write(repo.currenttransaction()) |
2265 # fix up dirstate for copies and renames |
2271 # fix up dirstate for copies and renames |
2266 copies.duplicatecopies(repo, repo[None], ctx.rev(), pctx.rev()) |
2272 copies.duplicatecopies(repo, repo[None], ctx.rev(), pctx.rev()) |
2267 return stats |
2273 return stats |
2268 |
2274 |