[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