63
62
file('hello', 'wt').write('quuux')
64
63
# We can't merge when there are in-tree changes
65
64
self.runbzr('merge ../b', retcode=3)
66
a = WorkingTree.open('.')
67
a_tip = a.commit("Like an epidemic of u's")
65
self.runbzr(['commit', '-m', "Like an epidemic of u's"])
68
66
self.runbzr('merge ../b -r last:1..last:1 --merge-type blooof',
70
68
self.runbzr('merge ../b -r last:1..last:1 --merge-type merge3')
76
74
self.runbzr('merge ../b -r last:1')
77
75
self.check_file_contents('goodbye', 'quux')
78
76
# Merging a branch pulls its revision into the tree
77
a = WorkingTree.open('.')
79
78
b = Branch.open('../b')
80
b_tip = b.last_revision()
81
self.failUnless(a.branch.repository.has_revision(b_tip))
82
self.assertEqual([a_tip, b_tip], a.get_parent_ids())
83
self.runbzr('revert --no-backup')
84
out, err = self.runbzr('merge -r revno:1:./hello', retcode=3)
85
self.assertTrue("Not a branch" in err)
86
self.runbzr('merge -r revno:%d:./..revno:%d:../b'
87
%(ancestor,b.revno()))
88
self.assertEquals(a.get_parent_ids(),
89
[a.branch.last_revision(), b.last_revision()])
90
self.check_file_contents('goodbye', 'quux')
91
self.runbzr('revert --no-backup')
92
self.runbzr('merge -r revno:%d:../b'%b.revno())
93
self.assertEquals(a.get_parent_ids(),
94
[a.branch.last_revision(), b.last_revision()])
95
a_tip = a.commit('merged')
79
a.branch.repository.get_revision_xml(b.last_revision())
80
self.log('pending merges: %s', a.pending_merges())
81
self.assertEquals(a.pending_merges(),
83
self.runbzr('commit -m merged')
96
84
self.runbzr('merge ../b -r last:1')
97
self.assertEqual([a_tip], a.get_parent_ids())
85
self.assertEqual(a.pending_merges(), [])
99
87
def test_merge_with_missing_file(self):
100
88
"""Merge handles missing file conflicts"""
207
195
file('../bundle', 'wb').write(self.runbzr('bundle ../branch_a')[0])
208
196
os.chdir('../branch_a')
209
197
self.runbzr('merge ../bundle', retcode=1)
210
testament_a = Testament.from_revision(tree_a.branch.repository,
211
tree_b.get_parent_ids()[0])
198
testament_a = Testament.from_revision(tree_a.branch.repository,
199
tree_b.last_revision())
212
200
testament_b = Testament.from_revision(tree_b.branch.repository,
213
tree_b.get_parent_ids()[0])
201
tree_b.last_revision())
214
202
self.assertEqualDiff(testament_a.as_text(),
215
203
testament_b.as_text())
216
204
tree_a.set_conflicts(ConflictList())