~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/merge3.py

Added more docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
# s: "i hate that."
20
20
 
21
21
 
 
22
from difflib import SequenceMatcher
22
23
from bzrlib.errors import CantReprocessAndShowBase
23
 
from bzrlib.patiencediff import SequenceMatcher
24
 
from bzrlib.textfile import check_text_lines
25
24
 
26
25
def intersect(ra, rb):
27
26
    """Given two ranges return the range where they intersect or None.
67
66
    incorporating the changes from both BASE->OTHER and BASE->THIS.
68
67
    All three will typically be sequences of lines."""
69
68
    def __init__(self, base, a, b):
70
 
        check_text_lines(base)
71
 
        check_text_lines(a)
72
 
        check_text_lines(b)
73
69
        self.base = base
74
70
        self.a = a
75
71
        self.b = b
383
379
 
384
380
    def find_unconflicted(self):
385
381
        """Return a list of ranges in base that are not conflicted."""
386
 
        am = SequenceMatcher(None, self.base, self.a).get_matching_blocks()
387
 
        bm = SequenceMatcher(None, self.base, self.b).get_matching_blocks()
 
382
 
 
383
        import re
 
384
 
 
385
        # don't sync-up on lines containing only blanks or pounds
 
386
        junk_re = re.compile(r'^[ \t#]*$')
 
387
        
 
388
        am = SequenceMatcher(junk_re.match, self.base, self.a).get_matching_blocks()
 
389
        bm = SequenceMatcher(junk_re.match, self.base, self.b).get_matching_blocks()
388
390
 
389
391
        unc = []
390
392