[Pkg-bazaar-commits] ./bzr/unstable r832: - New Merge3.merge_annotated method for debugging.
Martin Pool
mbp at sourcefrog.net
Fri Apr 10 08:21:11 UTC 2009
------------------------------------------------------------
revno: 832
committer: Martin Pool <mbp at sourcefrog.net>
timestamp: Tue 2005-07-05 19:55:35 +1000
message:
- New Merge3.merge_annotated method for debugging.
- Remove dead code.
modified:
bzrlib/merge3.py
-------------- next part --------------
=== modified file 'bzrlib/merge3.py'
--- a/bzrlib/merge3.py 2005-07-05 09:04:24 +0000
+++ b/bzrlib/merge3.py 2005-07-05 09:55:35 +0000
@@ -43,14 +43,6 @@
return None
-def threeway(baseline, aline, bline):
- if baseline == aline:
- return bline
- elif baseline == bline:
- return aline
- else:
- return [aline, bline]
-
class Merge3(object):
@@ -109,6 +101,37 @@
+ def merge_annotated(self):
+ """Return merge with conflicts, showing origin of lines.
+
+ Most useful for debugging merge.
+ """
+ for t in self.merge_regions():
+ what = t[0]
+ if what == 'unchanged':
+ for i in range(t[1], t[2]):
+ yield 'u | ' + self.base[i]
+ elif what == 'a' or what == 'same':
+ for i in range(t[1], t[2]):
+ yield what[0] + ' | ' + self.a[i]
+ elif what == 'b':
+ for i in range(t[1], t[2]):
+ yield 'b | ' + self.b[i]
+ elif what == 'conflict':
+ yield '<<<<\n'
+ for i in range(t[3], t[4]):
+ yield 'A | ' + self.a[i]
+ yield '----\n'
+ for i in range(t[5], t[6]):
+ yield 'B | ' + self.b[i]
+ yield '>>>>\n'
+ else:
+ raise ValueError(what)
+
+
+
+
+
def merge_groups(self):
"""Yield sequence of line groups. Each one is a tuple:
@@ -319,7 +342,8 @@
m3 = Merge3(base, a, b)
- sys.stdout.writelines(m3.merge_lines(name_a=argv[1], name_b=argv[3]))
+ # sys.stdout.writelines(m3.merge_lines(name_a=argv[1], name_b=argv[3]))
+ sys.stdout.writelines(m3.merge_annotated())
if __name__ == '__main__':
More information about the Pkg-bazaar-commits
mailing list