122
122
out, err = self.run_bzr('uncommit', '-r', '-1', retcode=1)
123
123
self.assertEqual('No revisions to uncommit.\n', out)
125
def test_uncommit_merges(self):
126
wt = self.create_simple_tree()
128
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
130
tree2.commit('unchanged', rev_id='b3')
131
tree2.commit('unchanged', rev_id='b4')
133
wt.branch.fetch(tree2.branch)
134
wt.set_pending_merges(['b4'])
135
wt.commit('merge b4', rev_id='a3')
137
self.assertEqual('a3', wt.last_revision())
138
self.assertEqual([], wt.pending_merges())
141
out, err = self.run_bzr('uncommit', '--force')
143
self.assertEqual('a2', wt.last_revision())
144
self.assertEqual(['b4'], wt.pending_merges())
146
def test_uncommit_multiple_merge(self):
147
wt = self.create_simple_tree()
149
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
151
tree2.commit('unchanged', rev_id='b3')
152
wt.branch.fetch(tree2.branch)
153
wt.set_pending_merges(['b3'])
154
wt.commit('merge b3', rev_id='a3')
156
tree2.commit('unchanged', rev_id='b4')
157
wt.branch.fetch(tree2.branch)
158
wt.set_pending_merges(['b4'])
159
wt.commit('merge b4', rev_id='a4')
161
self.assertEqual('a4', wt.last_revision())
162
self.assertEqual([], wt.pending_merges())
165
out, err = self.run_bzr('uncommit', '--force', '-r', '2')
167
self.assertEqual('a2', wt.last_revision())
168
self.assertEqual(['b3', 'b4'], wt.pending_merges())
170
def test_uncommit_octopus_merge(self):
171
# Check that uncommit keeps the pending merges in the same order
172
wt = self.create_simple_tree()
174
tree2 = wt.bzrdir.sprout('tree2').open_workingtree()
175
tree3 = wt.bzrdir.sprout('tree3').open_workingtree()
177
tree2.commit('unchanged', rev_id='b3')
178
tree3.commit('unchanged', rev_id='c3')
179
wt.branch.fetch(tree2.branch)
180
wt.branch.fetch(tree3.branch)
181
wt.set_pending_merges(['b3', 'c3'])
182
wt.commit('merge b3, c3', rev_id='a3')
184
tree2.commit('unchanged', rev_id='b4')
185
tree3.commit('unchanged', rev_id='c4')
186
wt.branch.fetch(tree2.branch)
187
wt.branch.fetch(tree3.branch)
188
wt.set_pending_merges(['c4', 'b4'])
189
wt.commit('merge b4, c4', rev_id='a4')
191
self.assertEqual('a4', wt.last_revision())
192
self.assertEqual([], wt.pending_merges())
195
out, err = self.run_bzr('uncommit', '--force', '-r', '2')
197
self.assertEqual('a2', wt.last_revision())
198
self.assertEqual(['b3', 'c3', 'c4', 'b4'], wt.pending_merges())