[Pkg-bazaar-commits] ./bzr/unstable r828: - code to represent merges in regular text conflict form
Martin Pool
mbp at sourcefrog.net
Fri Apr 10 08:21:10 UTC 2009
------------------------------------------------------------
revno: 828
committer: Martin Pool <mbp at sourcefrog.net>
timestamp: Tue 2005-07-05 18:37:09 +1000
message:
- code to represent merges in regular text conflict form
modified:
bzrlib/merge3.py
bzrlib/selftest/testmerge3.py
-------------- next part --------------
=== modified file 'bzrlib/merge3.py'
--- a/bzrlib/merge3.py 2005-07-05 08:30:08 +0000
+++ b/bzrlib/merge3.py 2005-07-05 08:37:09 +0000
@@ -69,6 +69,38 @@
+ def merge_lines(self,
+ start_marker='<<<<<<<<\n',
+ mid_marker='========\n',
+ end_marker='>>>>>>>>\n'):
+ """Return merge in cvs-like form.
+ """
+ for t in self.merge_regions():
+ what = t[0]
+ if what == 'unchanged':
+ for i in range(t[1], t[2]):
+ yield self.base[i]
+ elif what == 'a':
+ for i in range(t[1], t[2]):
+ yield self.a[i]
+ elif what == 'b':
+ for i in range(t[1], t[2]):
+ yield self.b[i]
+ elif what == 'conflict':
+ yield start_marker
+ for i in range(t[3], t[4]):
+ yield self.a[i]
+ yield mid_marker
+ for i in range(t[5], t[6]):
+ yield self.b[i]
+ yield end_marker
+ else:
+ raise ValueError(what)
+
+
+
+
+
def merge_groups(self):
"""Yield sequence of line groups. Each one is a tuple:
=== modified file 'bzrlib/selftest/testmerge3.py'
--- a/bzrlib/selftest/testmerge3.py 2005-07-05 08:30:08 +0000
+++ b/bzrlib/selftest/testmerge3.py 2005-07-05 08:37:09 +0000
@@ -76,6 +76,9 @@
self.assertEquals(list(m3.merge_regions()),
[('a', 0, 2)])
+
+ self.assertEquals(list(m3.merge_lines()),
+ ['aaa', 'bbb'])
@@ -128,6 +131,15 @@
('unchanged', ['bbb']),
])
+ self.assertEquals(list(m3.merge_lines('<<', '--', '>>')),
+ ['aaa',
+ '<<',
+ '111',
+ '--',
+ '222',
+ '>>',
+ 'bbb'])
+
class ReplaceClash(TestBase):
More information about the Pkg-bazaar-commits
mailing list