mercurial/simplemerge.py
changeset 10282 08a0f04b56bd
parent 8312 b87a50b7125c
child 12055 81c4e18c7cee
equal deleted inserted replaced
10281:e7d3b509af8b 10282:08a0f04b56bd
    48         return None
    48         return None
    49 
    49 
    50 def compare_range(a, astart, aend, b, bstart, bend):
    50 def compare_range(a, astart, aend, b, bstart, bend):
    51     """Compare a[astart:aend] == b[bstart:bend], without slicing.
    51     """Compare a[astart:aend] == b[bstart:bend], without slicing.
    52     """
    52     """
    53     if (aend-astart) != (bend-bstart):
    53     if (aend - astart) != (bend - bstart):
    54         return False
    54         return False
    55     for ia, ib in zip(xrange(astart, aend), xrange(bstart, bend)):
    55     for ia, ib in zip(xrange(astart, aend), xrange(bstart, bend)):
    56         if a[ia] != b[ib]:
    56         if a[ia] != b[ib]:
    57             return False
    57             return False
    58     else:
    58     else:
   301                 region_ib += ib
   301                 region_ib += ib
   302                 reg = self.mismatch_region(next_a, region_ia, next_b,
   302                 reg = self.mismatch_region(next_a, region_ia, next_b,
   303                                            region_ib)
   303                                            region_ib)
   304                 if reg is not None:
   304                 if reg is not None:
   305                     yield reg
   305                     yield reg
   306                 yield 'same', region_ia, region_len+region_ia
   306                 yield 'same', region_ia, region_len + region_ia
   307                 next_a = region_ia + region_len
   307                 next_a = region_ia + region_len
   308                 next_b = region_ib + region_len
   308                 next_b = region_ib + region_len
   309             reg = self.mismatch_region(next_a, amatch, next_b, bmatch)
   309             reg = self.mismatch_region(next_a, amatch, next_b, bmatch)
   310             if reg is not None:
   310             if reg is not None:
   311                 yield reg
   311                 yield reg
   334             abase, amatch, alen = amatches[ia]
   334             abase, amatch, alen = amatches[ia]
   335             bbase, bmatch, blen = bmatches[ib]
   335             bbase, bmatch, blen = bmatches[ib]
   336 
   336 
   337             # there is an unconflicted block at i; how long does it
   337             # there is an unconflicted block at i; how long does it
   338             # extend?  until whichever one ends earlier.
   338             # extend?  until whichever one ends earlier.
   339             i = intersect((abase, abase+alen), (bbase, bbase+blen))
   339             i = intersect((abase, abase + alen), (bbase, bbase + blen))
   340             if i:
   340             if i:
   341                 intbase = i[0]
   341                 intbase = i[0]
   342                 intend = i[1]
   342                 intend = i[1]
   343                 intlen = intend - intbase
   343                 intlen = intend - intbase
   344 
   344