/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/merge3.py

  • Committer: Robert Collins
  • Date: 2010-05-06 11:08:10 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100506110810-h3j07fh5gmw54s25
Cleaner matcher matching revised unlocking protocol.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
from __future__ import absolute_import
18
17
 
19
18
# mbp: "you know that thing where cvs gives you conflict markers?"
20
19
# s: "i hate that."
21
20
 
22
 
from . import (
 
21
from bzrlib import (
23
22
    errors,
24
23
    patiencediff,
25
24
    textfile,
53
52
    """
54
53
    if (aend-astart) != (bend-bstart):
55
54
        return False
56
 
    for ia, ib in zip(range(astart, aend), range(bstart, bend)):
 
55
    for ia, ib in zip(xrange(astart, aend), xrange(bstart, bend)):
57
56
        if a[ia] != b[ib]:
58
57
            return False
59
58
    else:
95
94
                    name_a=None,
96
95
                    name_b=None,
97
96
                    name_base=None,
98
 
                    start_marker=b'<<<<<<<',
99
 
                    mid_marker=b'=======',
100
 
                    end_marker=b'>>>>>>>',
 
97
                    start_marker='<<<<<<<',
 
98
                    mid_marker='=======',
 
99
                    end_marker='>>>>>>>',
101
100
                    base_marker=None,
102
101
                    reprocess=False):
103
102
        """Return merge in cvs-like form.
104
103
        """
105
 
        newline = b'\n'
 
104
        newline = '\n'
106
105
        if len(self.a) > 0:
107
 
            if self.a[0].endswith(b'\r\n'):
108
 
                newline = b'\r\n'
109
 
            elif self.a[0].endswith(b'\r'):
110
 
                newline = b'\r'
 
106
            if self.a[0].endswith('\r\n'):
 
107
                newline = '\r\n'
 
108
            elif self.a[0].endswith('\r'):
 
109
                newline = '\r'
111
110
        if base_marker and reprocess:
112
111
            raise errors.CantReprocessAndShowBase()
113
112
        if name_a:
114
 
            start_marker = start_marker + b' ' + name_a
 
113
            start_marker = start_marker + ' ' + name_a
115
114
        if name_b:
116
 
            end_marker = end_marker + b' ' + name_b
 
115
            end_marker = end_marker + ' ' + name_b
117
116
        if name_base and base_marker:
118
 
            base_marker = base_marker + b' ' + name_base
 
117
            base_marker = base_marker + ' ' + name_base
119
118
        merge_regions = self.merge_regions()
120
119
        if reprocess is True:
121
120
            merge_regions = self.reprocess_merge_regions(merge_regions)
464
463
 
465
464
def main(argv):
466
465
    # as for diff3 and meld the syntax is "MINE BASE OTHER"
467
 
    with open(argv[1], 'rt') as f:
468
 
        a = f.readlines()
469
 
    with open(argv[2], 'rt') as f:
470
 
        base = f.readlines()
471
 
    with open(argv[3], 'rt') as f:
472
 
        b = f.readlines()
 
466
    a = file(argv[1], 'rt').readlines()
 
467
    base = file(argv[2], 'rt').readlines()
 
468
    b = file(argv[3], 'rt').readlines()
473
469
 
474
470
    m3 = Merge3(base, a, b)
475
471