comparison mercurial/merge.py @ 27075:6373330155b2

mergestate._resolve: don't return the action any more This is a partial backout of an earlier diff -- now that we're storing the results in a dict, we don't actually need this any more.
author Siddharth Agarwal <sid0@fb.com>
date Fri, 20 Nov 2015 16:32:47 -0800
parents 78b0c88ab0db
children 09139ccf3085
comparison
equal deleted inserted replaced
27074:78b0c88ab0db 27075:6373330155b2
413 yield f 413 yield f
414 414
415 def _resolve(self, preresolve, dfile, wctx, labels=None): 415 def _resolve(self, preresolve, dfile, wctx, labels=None):
416 """rerun merge process for file path `dfile`""" 416 """rerun merge process for file path `dfile`"""
417 if self[dfile] in 'rd': 417 if self[dfile] in 'rd':
418 return True, 0, None 418 return True, 0
419 stateentry = self._state[dfile] 419 stateentry = self._state[dfile]
420 state, hash, lfile, afile, anode, ofile, onode, flags = stateentry 420 state, hash, lfile, afile, anode, ofile, onode, flags = stateentry
421 octx = self._repo[self._other] 421 octx = self._repo[self._other]
422 fcd = self._filectxorabsent(hash, wctx, dfile) 422 fcd = self._filectxorabsent(hash, wctx, dfile)
423 fco = self._filectxorabsent(onode, octx, ofile) 423 fco = self._filectxorabsent(onode, octx, ofile)
453 del self._state[dfile] 453 del self._state[dfile]
454 self._dirty = True 454 self._dirty = True
455 elif not r: 455 elif not r:
456 self.mark(dfile, 'r') 456 self.mark(dfile, 'r')
457 457
458 action = None
459 if complete: 458 if complete:
459 action = None
460 if deleted: 460 if deleted:
461 if not fcd.isabsent(): 461 if not fcd.isabsent():
462 # cd: remote picked (or otherwise deleted) 462 # cd: remote picked (or otherwise deleted)
463 action = 'r' 463 action = 'r'
464 # else: dc: local picked (no action necessary) 464 # else: dc: local picked (no action necessary)
468 elif fco.isabsent(): # cd: local picked 468 elif fco.isabsent(): # cd: local picked
469 action = 'a' 469 action = 'a'
470 # else: regular merges (no action necessary) 470 # else: regular merges (no action necessary)
471 self._results[dfile] = r, action 471 self._results[dfile] = r, action
472 472
473 return complete, r, action 473 return complete, r
474 474
475 def _filectxorabsent(self, hexnode, ctx, f): 475 def _filectxorabsent(self, hexnode, ctx, f):
476 if hexnode == nullhex: 476 if hexnode == nullhex:
477 return filemerge.absentfilectx(ctx, f) 477 return filemerge.absentfilectx(ctx, f)
478 else: 478 else:
480 480
481 def preresolve(self, dfile, wctx, labels=None): 481 def preresolve(self, dfile, wctx, labels=None):
482 """run premerge process for dfile 482 """run premerge process for dfile
483 483
484 Returns whether the merge is complete, and the exit code.""" 484 Returns whether the merge is complete, and the exit code."""
485 complete, r, action = self._resolve(True, dfile, wctx, labels=labels) 485 return self._resolve(True, dfile, wctx, labels=labels)
486 return complete, r
487 486
488 def resolve(self, dfile, wctx, labels=None): 487 def resolve(self, dfile, wctx, labels=None):
489 """run merge process (assuming premerge was run) for dfile 488 """run merge process (assuming premerge was run) for dfile
490 489
491 Returns the exit code of the merge.""" 490 Returns the exit code of the merge."""
492 complete, r, action = self._resolve(False, dfile, wctx, labels=labels) 491 return self._resolve(False, dfile, wctx, labels=labels)[1]
493 return r
494 492
495 def _checkunknownfile(repo, wctx, mctx, f, f2=None): 493 def _checkunknownfile(repo, wctx, mctx, f, f2=None):
496 if f2 is None: 494 if f2 is None:
497 f2 = f 495 f2 = f
498 return (os.path.isfile(repo.wjoin(f)) 496 return (os.path.isfile(repo.wjoin(f))