##// END OF EJS Templates
merge: respect parents order when using `graft` on a merge...
marmoute -
r43185:a4ca0610 stable
parent child Browse files
Show More
@@ -2249,17 +2249,23 b' def graft(repo, ctx, pctx, labels=None, '
2249 mergeancestor=mergeancestor, labels=labels)
2249 mergeancestor=mergeancestor, labels=labels)
2250
2250
2251
2251
2252 potherp1 = False
2252 if keepconflictparent and stats.unresolvedcount:
2253 if keepconflictparent and stats.unresolvedcount:
2253 pother = ctx.node()
2254 pother = ctx.node()
2254 else:
2255 else:
2255 pother = nullid
2256 pother = nullid
2256 parents = ctx.parents()
2257 parents = ctx.parents()
2257 if keepparent and len(parents) == 2 and pctx in parents:
2258 if keepparent and len(parents) == 2 and pctx in parents:
2259 if pctx == parents[0]:
2260 potherp1 = True
2258 parents.remove(pctx)
2261 parents.remove(pctx)
2259 pother = parents[0].node()
2262 pother = parents[0].node()
2260
2263
2261 with repo.dirstate.parentchange():
2264 with repo.dirstate.parentchange():
2262 repo.setparents(repo['.'].node(), pother)
2265 if potherp1:
2266 repo.setparents(pother, repo['.'].node())
2267 else:
2268 repo.setparents(repo['.'].node(), pother)
2263 repo.dirstate.write(repo.currenttransaction())
2269 repo.dirstate.write(repo.currenttransaction())
2264 # fix up dirstate for copies and renames
2270 # fix up dirstate for copies and renames
2265 copies.duplicatecopies(repo, repo[None], ctx.rev(), pctx.rev())
2271 copies.duplicatecopies(repo, repo[None], ctx.rev(), pctx.rev())
General Comments 0
You need to be logged in to leave comments. Login now