131
131
tree2.commit('unchanged', rev_id='b3')
132
132
tree2.commit('unchanged', rev_id='b4')
134
wt.branch.fetch(tree2.branch)
135
wt.set_pending_merges(['b4'])
134
self.merge(tree2.branch, wt)
136
135
wt.commit('merge b4', rev_id='a3')
138
self.assertEqual('a3', wt.last_revision())
139
self.assertEqual([], wt.pending_merges())
137
self.assertEqual(['a3'], wt.get_parent_ids())
142
140
out, err = self.run_bzr('uncommit', '--force')
144
self.assertEqual('a2', wt.last_revision())
145
self.assertEqual(['b4'], wt.pending_merges())
142
self.assertEqual(['a2', 'b4'], wt.get_parent_ids())
147
144
def test_uncommit_multiple_merge(self):
148
145
wt = self.create_simple_tree()
150
147
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
152
149
tree2.commit('unchanged', rev_id='b3')
153
wt.branch.fetch(tree2.branch)
154
wt.set_pending_merges(['b3'])
151
self.merge(tree2.branch, wt)
155
152
wt.commit('merge b3', rev_id='a3')
157
154
tree2.commit('unchanged', rev_id='b4')
158
wt.branch.fetch(tree2.branch)
159
wt.set_pending_merges(['b4'])
156
self.merge(tree2.branch, wt)
160
157
wt.commit('merge b4', rev_id='a4')
162
self.assertEqual('a4', wt.last_revision())
163
self.assertEqual([], wt.pending_merges())
159
self.assertEqual(['a4'], wt.get_parent_ids())
166
162
out, err = self.run_bzr('uncommit', '--force', '-r', '2')
168
self.assertEqual('a2', wt.last_revision())
169
self.assertEqual(['b3', 'b4'], wt.pending_merges())
164
self.assertEqual(['a2', 'b3', 'b4'], wt.get_parent_ids())
171
166
def test_uncommit_octopus_merge(self):
172
167
# Check that uncommit keeps the pending merges in the same order
178
173
tree2.commit('unchanged', rev_id='b3')
179
174
tree3.commit('unchanged', rev_id='c3')
180
wt.branch.fetch(tree2.branch)
181
wt.branch.fetch(tree3.branch)
182
wt.set_pending_merges(['b3', 'c3'])
176
self.merge(tree2.branch, wt)
177
self.merge(tree3.branch, wt)
183
178
wt.commit('merge b3, c3', rev_id='a3')
185
180
tree2.commit('unchanged', rev_id='b4')
186
181
tree3.commit('unchanged', rev_id='c4')
187
wt.branch.fetch(tree2.branch)
188
wt.branch.fetch(tree3.branch)
189
wt.set_pending_merges(['c4', 'b4'])
183
self.merge(tree3.branch, wt)
184
self.merge(tree2.branch, wt)
190
185
wt.commit('merge b4, c4', rev_id='a4')
192
self.assertEqual('a4', wt.last_revision())
193
self.assertEqual([], wt.pending_merges())
187
self.assertEqual(['a4'], wt.get_parent_ids())
196
190
out, err = self.run_bzr('uncommit', '--force', '-r', '2')
198
self.assertEqual('a2', wt.last_revision())
199
self.assertEqual(['b3', 'c3', 'c4', 'b4'], wt.pending_merges())
192
self.assertEqual(['a2', 'b3', 'c3', 'c4', 'b4'], wt.get_parent_ids())