161
161
def test_uncommit_merges(self):
162
162
wt = self.create_simple_tree()
164
tree2 = wt.controldir.sprout('tree2').open_workingtree()
164
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
166
tree2.commit('unchanged', rev_id=b'b3')
167
tree2.commit('unchanged', rev_id=b'b4')
166
tree2.commit('unchanged', rev_id='b3')
167
tree2.commit('unchanged', rev_id='b4')
169
169
wt.merge_from_branch(tree2.branch)
170
wt.commit('merge b4', rev_id=b'a3')
170
wt.commit('merge b4', rev_id='a3')
172
self.assertEqual([b'a3'], wt.get_parent_ids())
172
self.assertEqual(['a3'], wt.get_parent_ids())
175
175
out, err = self.run_bzr('uncommit --force')
177
self.assertEqual([b'a2', b'b4'], wt.get_parent_ids())
177
self.assertEqual(['a2', 'b4'], wt.get_parent_ids())
179
179
def test_uncommit_pending_merge(self):
180
180
wt = self.create_simple_tree()
181
tree2 = wt.controldir.sprout('tree2').open_workingtree()
182
tree2.commit('unchanged', rev_id=b'b3')
181
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
182
tree2.commit('unchanged', rev_id='b3')
184
184
wt.branch.fetch(tree2.branch)
185
wt.set_pending_merges([b'b3'])
185
wt.set_pending_merges(['b3'])
188
188
out, err = self.run_bzr('uncommit --force')
189
self.assertEqual([b'a1', b'b3'], wt.get_parent_ids())
189
self.assertEqual(['a1', 'b3'], wt.get_parent_ids())
191
191
def test_uncommit_multiple_merge(self):
192
192
wt = self.create_simple_tree()
194
tree2 = wt.controldir.sprout('tree2').open_workingtree()
195
tree2.commit('unchanged', rev_id=b'b3')
194
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
195
tree2.commit('unchanged', rev_id='b3')
197
tree3 = wt.controldir.sprout('tree3').open_workingtree()
198
tree3.commit('unchanged', rev_id=b'c3')
197
tree3 = wt.bzrdir.sprout('tree3').open_workingtree()
198
tree3.commit('unchanged', rev_id='c3')
200
200
wt.merge_from_branch(tree2.branch)
201
wt.commit('merge b3', rev_id=b'a3')
201
wt.commit('merge b3', rev_id='a3')
203
203
wt.merge_from_branch(tree3.branch)
204
wt.commit('merge c3', rev_id=b'a4')
204
wt.commit('merge c3', rev_id='a4')
206
self.assertEqual([b'a4'], wt.get_parent_ids())
206
self.assertEqual(['a4'], wt.get_parent_ids())
209
209
out, err = self.run_bzr('uncommit --force -r 2')
211
self.assertEqual([b'a2', b'b3', b'c3'], wt.get_parent_ids())
211
self.assertEqual(['a2', 'b3', 'c3'], wt.get_parent_ids())
213
213
def test_uncommit_merge_plus_pending(self):
214
214
wt = self.create_simple_tree()
216
tree2 = wt.controldir.sprout('tree2').open_workingtree()
217
tree2.commit('unchanged', rev_id=b'b3')
218
tree3 = wt.controldir.sprout('tree3').open_workingtree()
219
tree3.commit('unchanged', rev_id=b'c3')
216
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
217
tree2.commit('unchanged', rev_id='b3')
218
tree3 = wt.bzrdir.sprout('tree3').open_workingtree()
219
tree3.commit('unchanged', rev_id='c3')
221
221
wt.branch.fetch(tree2.branch)
222
wt.set_pending_merges([b'b3'])
223
wt.commit('merge b3', rev_id=b'a3')
222
wt.set_pending_merges(['b3'])
223
wt.commit('merge b3', rev_id='a3')
225
226
wt.merge_from_branch(tree3.branch)
227
self.assertEqual([b'a3', b'c3'], wt.get_parent_ids())
228
self.assertEqual(['a3', 'c3'], wt.get_parent_ids())
230
231
out, err = self.run_bzr('uncommit --force -r 2')
232
self.assertEqual([b'a2', b'b3', b'c3'], wt.get_parent_ids())
233
self.assertEqual(['a2', 'b3', 'c3'], wt.get_parent_ids())
234
235
def test_uncommit_shows_log_with_revision_id(self):
235
236
wt = self.create_simple_tree()
265
252
# though it will also filter out ones in the ancestry
266
253
wt = self.create_simple_tree()
268
tree2 = wt.controldir.sprout('tree2').open_workingtree()
269
tree3 = wt.controldir.sprout('tree3').open_workingtree()
255
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
256
tree3 = wt.bzrdir.sprout('tree3').open_workingtree()
271
tree2.commit('unchanged', rev_id=b'b3')
272
tree3.commit('unchanged', rev_id=b'c3')
258
tree2.commit('unchanged', rev_id='b3')
259
tree3.commit('unchanged', rev_id='c3')
274
261
wt.merge_from_branch(tree2.branch)
275
262
wt.merge_from_branch(tree3.branch, force=True)
276
wt.commit('merge b3, c3', rev_id=b'a3')
263
wt.commit('merge b3, c3', rev_id='a3')
278
tree2.commit('unchanged', rev_id=b'b4')
279
tree3.commit('unchanged', rev_id=b'c4')
265
tree2.commit('unchanged', rev_id='b4')
266
tree3.commit('unchanged', rev_id='c4')
281
268
wt.merge_from_branch(tree3.branch)
282
269
wt.merge_from_branch(tree2.branch, force=True)
283
wt.commit('merge b4, c4', rev_id=b'a4')
270
wt.commit('merge b4, c4', rev_id='a4')
285
self.assertEqual([b'a4'], wt.get_parent_ids())
272
self.assertEqual(['a4'], wt.get_parent_ids())
288
275
out, err = self.run_bzr('uncommit --force -r 2')
290
self.assertEqual([b'a2', b'c4', b'b4'], wt.get_parent_ids())
277
self.assertEqual(['a2', 'c4', 'b4'], wt.get_parent_ids())
292
279
def test_uncommit_nonascii(self):
293
280
tree = self.make_branch_and_tree('tree')