[Pkg-bazaar-commits] ./bzr/unstable r829: - More merge3 cvs-form stuff
Martin Pool
mbp at sourcefrog.net
Fri Apr 10 08:13:41 UTC 2009
------------------------------------------------------------
revno: 829
committer: Martin Pool <mbp at sourcefrog.net>
timestamp: Tue 2005-07-05 18:48:02 +1000
message:
- More merge3 cvs-form stuff
modified:
bzrlib/merge3.py
bzrlib/selftest/testmerge3.py
-------------- next part --------------
=== modified file 'bzrlib/merge3.py'
--- a/bzrlib/merge3.py 2005-07-05 08:37:09 +0000
+++ b/bzrlib/merge3.py 2005-07-05 08:48:02 +0000
@@ -70,11 +70,19 @@
def merge_lines(self,
- start_marker='<<<<<<<<\n',
- mid_marker='========\n',
- end_marker='>>>>>>>>\n'):
+ name_a=None,
+ name_b=None,
+ start_marker='<<<<<<<<',
+ mid_marker='========',
+ end_marker='>>>>>>>>',
+ show_base=False):
"""Return merge in cvs-like form.
"""
+ if name_a:
+ start_marker = start_marker + ' ' + name_a
+ if name_b:
+ end_marker = end_marker + ' ' + name_b
+
for t in self.merge_regions():
what = t[0]
if what == 'unchanged':
@@ -87,13 +95,13 @@
for i in range(t[1], t[2]):
yield self.b[i]
elif what == 'conflict':
- yield start_marker
+ yield start_marker + '\n'
for i in range(t[3], t[4]):
yield self.a[i]
- yield mid_marker
+ yield mid_marker + '\n'
for i in range(t[5], t[6]):
yield self.b[i]
- yield end_marker
+ yield end_marker + '\n'
else:
raise ValueError(what)
@@ -292,3 +300,18 @@
del bm[0]
return unc
+
+
+def main(argv):
+ base = file(argv[1], 'rt').readlines()
+ a = file(argv[2], 'rt').readlines()
+ b = file(argv[3], 'rt').readlines()
+
+ m3 = Merge3(base, a, b)
+
+ sys.stdout.writelines(m3.merge_lines(argv[2], argv[3]))
+
+
+if __name__ == '__main__':
+ import sys
+ sys.exit(main(sys.argv))
=== modified file 'bzrlib/selftest/testmerge3.py'
--- a/bzrlib/selftest/testmerge3.py 2005-07-05 08:37:09 +0000
+++ b/bzrlib/selftest/testmerge3.py 2005-07-05 08:48:02 +0000
@@ -108,9 +108,9 @@
class InsertClash(TestBase):
"""Both try to insert lines in the same place."""
def runTest(self):
- m3 = Merge3(['aaa', 'bbb'],
- ['aaa', '111', 'bbb'],
- ['aaa', '222', 'bbb'])
+ m3 = Merge3(['aaa\n', 'bbb\n'],
+ ['aaa\n', '111\n', 'bbb\n'],
+ ['aaa\n', '222\n', 'bbb\n'])
self.assertEquals(m3.find_unconflicted(),
[(0, 1), (1, 2)])
@@ -126,19 +126,25 @@
('unchanged', 1,2)])
self.assertEquals(list(m3.merge_groups()),
- [('unchanged', ['aaa']),
- ('conflict', [], ['111'], ['222']),
- ('unchanged', ['bbb']),
+ [('unchanged', ['aaa\n']),
+ ('conflict', [], ['111\n'], ['222\n']),
+ ('unchanged', ['bbb\n']),
])
- self.assertEquals(list(m3.merge_lines('<<', '--', '>>')),
- ['aaa',
- '<<',
- '111',
- '--',
- '222',
- '>>',
- 'bbb'])
+ ml = m3.merge_lines(name_a='a',
+ name_b='b',
+ start_marker='<<',
+ mid_marker='--',
+ end_marker='>>')
+ self.assertEquals(''.join(ml),
+'''aaa
+<< a
+111
+--
+222
+>> b
+bbb
+''')
More information about the Pkg-bazaar-commits
mailing list