mercurial/mergestate.py
changeset 44930 17d928f8abaf
parent 44915 b7808443ed6a
child 44980 818b4f19ef23
equal deleted inserted replaced
44929:9f96beb9bafe 44930:17d928f8abaf
    27 def _droponode(data):
    27 def _droponode(data):
    28     # used for compatibility for v1
    28     # used for compatibility for v1
    29     bits = data.split(b'\0')
    29     bits = data.split(b'\0')
    30     bits = bits[:-2] + bits[-1:]
    30     bits = bits[:-2] + bits[-1:]
    31     return b'\0'.join(bits)
    31     return b'\0'.join(bits)
       
    32 
       
    33 
       
    34 def _filectxorabsent(hexnode, ctx, f):
       
    35     if hexnode == nullhex:
       
    36         return filemerge.absentfilectx(ctx, f)
       
    37     else:
       
    38         return ctx[f]
    32 
    39 
    33 
    40 
    34 # Merge state record types. See ``mergestate`` docs for more.
    41 # Merge state record types. See ``mergestate`` docs for more.
    35 RECORD_LOCAL = b'L'
    42 RECORD_LOCAL = b'L'
    36 RECORD_OTHER = b'O'
    43 RECORD_OTHER = b'O'
   598         anccommitnode = extras.get(b'ancestorlinknode')
   605         anccommitnode = extras.get(b'ancestorlinknode')
   599         if anccommitnode:
   606         if anccommitnode:
   600             actx = self._repo[anccommitnode]
   607             actx = self._repo[anccommitnode]
   601         else:
   608         else:
   602             actx = None
   609             actx = None
   603         fcd = self._filectxorabsent(localkey, wctx, dfile)
   610         fcd = _filectxorabsent(localkey, wctx, dfile)
   604         fco = self._filectxorabsent(onode, octx, ofile)
   611         fco = _filectxorabsent(onode, octx, ofile)
   605         # TODO: move this to filectxorabsent
   612         # TODO: move this to filectxorabsent
   606         fca = self._repo.filectx(afile, fileid=anode, changectx=actx)
   613         fca = self._repo.filectx(afile, fileid=anode, changectx=actx)
   607         # "premerge" x flags
   614         # "premerge" x flags
   608         flo = fco.flags()
   615         flo = fco.flags()
   609         fla = fca.flags()
   616         fla = fca.flags()
   677                 # else: regular merges (no action necessary)
   684                 # else: regular merges (no action necessary)
   678             self._results[dfile] = r, action
   685             self._results[dfile] = r, action
   679 
   686 
   680         return complete, r
   687         return complete, r
   681 
   688 
   682     def _filectxorabsent(self, hexnode, ctx, f):
       
   683         if hexnode == nullhex:
       
   684             return filemerge.absentfilectx(ctx, f)
       
   685         else:
       
   686             return ctx[f]
       
   687 
       
   688     def preresolve(self, dfile, wctx):
   689     def preresolve(self, dfile, wctx):
   689         """run premerge process for dfile
   690         """run premerge process for dfile
   690 
   691 
   691         Returns whether the merge is complete, and the exit code."""
   692         Returns whether the merge is complete, and the exit code."""
   692         return self._resolve(True, dfile, wctx)
   693         return self._resolve(True, dfile, wctx)