/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/blackbox/test_uncommit.py

  • Committer: Jelmer Vernooij
  • Date: 2020-03-22 01:35:14 UTC
  • mfrom: (7490.7.6 work)
  • mto: This revision was merged to the branch mainline in revision 7499.
  • Revision ID: jelmer@jelmer.uk-20200322013514-7vw1ntwho04rcuj3
merge lp:brz/3.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
        wt = self.make_branch_and_tree('tree')
36
36
        self.build_tree(['tree/a', 'tree/b', 'tree/c'])
37
37
        wt.add(['a', 'b', 'c'])
38
 
        wt.commit('initial commit', rev_id='a1')
 
38
        wt.commit('initial commit', rev_id=b'a1')
39
39
 
40
 
        self.build_tree_contents([('tree/a', 'new contents of a\n')])
41
 
        wt.commit('second commit', rev_id='a2')
 
40
        self.build_tree_contents([('tree/a', b'new contents of a\n')])
 
41
        wt.commit('second commit', rev_id=b'a2')
42
42
 
43
43
        return wt
44
44
 
53
53
        self.assertContainsRe(out, 'second commit')
54
54
 
55
55
        # Nothing has changed
56
 
        self.assertEqual(['a2'], wt.get_parent_ids())
 
56
        self.assertEqual([b'a2'], wt.get_parent_ids())
57
57
 
58
58
        # Uncommit, don't prompt
59
59
        out, err = self.run_bzr('uncommit --force')
61
61
        self.assertContainsRe(out, 'second commit')
62
62
 
63
63
        # This should look like we are back in revno 1
64
 
        self.assertEqual(['a1'], wt.get_parent_ids())
 
64
        self.assertEqual([b'a1'], wt.get_parent_ids())
65
65
        out, err = self.run_bzr('status')
66
66
        self.assertEqual(out, 'modified:\n  a\n')
67
67
 
69
69
        """Uncommit seeks confirmation, and doesn't proceed without it."""
70
70
        wt = self.create_simple_tree()
71
71
        os.chdir('tree')
72
 
        run_script(self, """    
 
72
        run_script(self, """
73
73
        $ brz uncommit
74
74
        ...
75
75
        The above revision(s) will be removed.
77
77
        <n
78
78
        Canceled
79
79
        """)
80
 
        self.assertEqual(['a2'], wt.get_parent_ids())
 
80
        self.assertEqual([b'a2'], wt.get_parent_ids())
81
81
 
82
82
    def test_uncommit_no_history(self):
83
83
        wt = self.make_branch_and_tree('tree')
89
89
        wt = self.create_simple_tree()
90
90
        checkout_tree = wt.branch.create_checkout('checkout')
91
91
 
92
 
        self.assertEqual(['a2'], checkout_tree.get_parent_ids())
 
92
        self.assertEqual([b'a2'], checkout_tree.get_parent_ids())
93
93
 
94
94
        os.chdir('checkout')
95
95
        out, err = self.run_bzr('uncommit --dry-run --force')
97
97
        self.assertNotContainsRe(out, 'initial commit')
98
98
        self.assertContainsRe(out, 'second commit')
99
99
 
100
 
        self.assertEqual(['a2'], checkout_tree.get_parent_ids())
 
100
        self.assertEqual([b'a2'], checkout_tree.get_parent_ids())
101
101
 
102
102
        out, err = self.run_bzr('uncommit --force')
103
103
        self.assertNotContainsRe(out, 'initial commit')
105
105
 
106
106
        # uncommit in a checkout should uncommit the parent branch
107
107
        # (but doesn't effect the other working tree)
108
 
        self.assertEqual(['a1'], checkout_tree.get_parent_ids())
109
 
        self.assertEqual('a1', wt.branch.last_revision())
110
 
        self.assertEqual(['a2'], wt.get_parent_ids())
 
108
        self.assertEqual([b'a1'], checkout_tree.get_parent_ids())
 
109
        self.assertEqual(b'a1', wt.branch.last_revision())
 
110
        self.assertEqual([b'a2'], wt.get_parent_ids())
111
111
 
112
112
    def test_uncommit_bound(self):
113
113
        os.mkdir('a')
149
149
 
150
150
        self.assertNotContainsRe(out, 'initial commit')
151
151
        self.assertContainsRe(out, 'second commit')
152
 
        self.assertEqual(['a1'], wt.get_parent_ids())
153
 
        self.assertEqual('a1', wt.branch.last_revision())
 
152
        self.assertEqual([b'a1'], wt.get_parent_ids())
 
153
        self.assertEqual(b'a1', wt.branch.last_revision())
154
154
 
155
155
    def test_uncommit_neg_1(self):
156
156
        wt = self.create_simple_tree()
163
163
 
164
164
        tree2 = wt.controldir.sprout('tree2').open_workingtree()
165
165
 
166
 
        tree2.commit('unchanged', rev_id='b3')
167
 
        tree2.commit('unchanged', rev_id='b4')
 
166
        tree2.commit('unchanged', rev_id=b'b3')
 
167
        tree2.commit('unchanged', rev_id=b'b4')
168
168
 
169
169
        wt.merge_from_branch(tree2.branch)
170
 
        wt.commit('merge b4', rev_id='a3')
 
170
        wt.commit('merge b4', rev_id=b'a3')
171
171
 
172
 
        self.assertEqual(['a3'], wt.get_parent_ids())
 
172
        self.assertEqual([b'a3'], wt.get_parent_ids())
173
173
 
174
174
        os.chdir('tree')
175
175
        out, err = self.run_bzr('uncommit --force')
176
176
 
177
 
        self.assertEqual(['a2', 'b4'], wt.get_parent_ids())
 
177
        self.assertEqual([b'a2', b'b4'], wt.get_parent_ids())
178
178
 
179
179
    def test_uncommit_pending_merge(self):
180
180
        wt = self.create_simple_tree()
181
181
        tree2 = wt.controldir.sprout('tree2').open_workingtree()
182
 
        tree2.commit('unchanged', rev_id='b3')
 
182
        tree2.commit('unchanged', rev_id=b'b3')
183
183
 
184
184
        wt.branch.fetch(tree2.branch)
185
 
        wt.set_pending_merges(['b3'])
 
185
        wt.set_pending_merges([b'b3'])
186
186
 
187
187
        os.chdir('tree')
188
188
        out, err = self.run_bzr('uncommit --force')
189
 
        self.assertEqual(['a1', 'b3'], wt.get_parent_ids())
 
189
        self.assertEqual([b'a1', b'b3'], wt.get_parent_ids())
190
190
 
191
191
    def test_uncommit_multiple_merge(self):
192
192
        wt = self.create_simple_tree()
193
193
 
194
194
        tree2 = wt.controldir.sprout('tree2').open_workingtree()
195
 
        tree2.commit('unchanged', rev_id='b3')
 
195
        tree2.commit('unchanged', rev_id=b'b3')
196
196
 
197
197
        tree3 = wt.controldir.sprout('tree3').open_workingtree()
198
 
        tree3.commit('unchanged', rev_id='c3')
 
198
        tree3.commit('unchanged', rev_id=b'c3')
199
199
 
200
200
        wt.merge_from_branch(tree2.branch)
201
 
        wt.commit('merge b3', rev_id='a3')
 
201
        wt.commit('merge b3', rev_id=b'a3')
202
202
 
203
203
        wt.merge_from_branch(tree3.branch)
204
 
        wt.commit('merge c3', rev_id='a4')
 
204
        wt.commit('merge c3', rev_id=b'a4')
205
205
 
206
 
        self.assertEqual(['a4'], wt.get_parent_ids())
 
206
        self.assertEqual([b'a4'], wt.get_parent_ids())
207
207
 
208
208
        os.chdir('tree')
209
209
        out, err = self.run_bzr('uncommit --force -r 2')
210
210
 
211
 
        self.assertEqual(['a2', 'b3', 'c3'], wt.get_parent_ids())
 
211
        self.assertEqual([b'a2', b'b3', b'c3'], wt.get_parent_ids())
212
212
 
213
213
    def test_uncommit_merge_plus_pending(self):
214
214
        wt = self.create_simple_tree()
215
215
 
216
216
        tree2 = wt.controldir.sprout('tree2').open_workingtree()
217
 
        tree2.commit('unchanged', rev_id='b3')
 
217
        tree2.commit('unchanged', rev_id=b'b3')
218
218
        tree3 = wt.controldir.sprout('tree3').open_workingtree()
219
 
        tree3.commit('unchanged', rev_id='c3')
 
219
        tree3.commit('unchanged', rev_id=b'c3')
220
220
 
221
221
        wt.branch.fetch(tree2.branch)
222
 
        wt.set_pending_merges(['b3'])
223
 
        wt.commit('merge b3', rev_id='a3')
224
 
 
 
222
        wt.set_pending_merges([b'b3'])
 
223
        wt.commit('merge b3', rev_id=b'a3')
225
224
 
226
225
        wt.merge_from_branch(tree3.branch)
227
226
 
228
 
        self.assertEqual(['a3', 'c3'], wt.get_parent_ids())
 
227
        self.assertEqual([b'a3', b'c3'], wt.get_parent_ids())
229
228
 
230
229
        os.chdir('tree')
231
230
        out, err = self.run_bzr('uncommit --force -r 2')
232
231
 
233
 
        self.assertEqual(['a2', 'b3', 'c3'], wt.get_parent_ids())
 
232
        self.assertEqual([b'a2', b'b3', b'c3'], wt.get_parent_ids())
234
233
 
235
234
    def test_uncommit_shows_log_with_revision_id(self):
236
235
        wt = self.create_simple_tree()
238
237
        script = ScriptRunner()
239
238
        script.run_script(self, """
240
239
$ cd tree
241
 
$ brz uncommit --force 
 
240
$ brz uncommit --force
242
241
    2 ...
243
242
      second commit
244
243
...
247
246
  brz pull . -r revid:a2
248
247
""")
249
248
 
 
249
    def test_uncommit_shows_pull_with_location(self):
 
250
        wt = self.create_simple_tree()
 
251
 
 
252
        script = ScriptRunner()
 
253
        script.run_script(self, """
 
254
$ brz uncommit --force tree
 
255
    2 ...
 
256
      second commit
 
257
...
 
258
The above revision(s) will be removed.
 
259
You can restore the old tip by running:
 
260
  brz pull -d tree tree -r revid:a2
 
261
""")
 
262
 
250
263
    def test_uncommit_octopus_merge(self):
251
264
        # Check that uncommit keeps the pending merges in the same order
252
265
        # though it will also filter out ones in the ancestry
255
268
        tree2 = wt.controldir.sprout('tree2').open_workingtree()
256
269
        tree3 = wt.controldir.sprout('tree3').open_workingtree()
257
270
 
258
 
        tree2.commit('unchanged', rev_id='b3')
259
 
        tree3.commit('unchanged', rev_id='c3')
 
271
        tree2.commit('unchanged', rev_id=b'b3')
 
272
        tree3.commit('unchanged', rev_id=b'c3')
260
273
 
261
274
        wt.merge_from_branch(tree2.branch)
262
275
        wt.merge_from_branch(tree3.branch, force=True)
263
 
        wt.commit('merge b3, c3', rev_id='a3')
 
276
        wt.commit('merge b3, c3', rev_id=b'a3')
264
277
 
265
 
        tree2.commit('unchanged', rev_id='b4')
266
 
        tree3.commit('unchanged', rev_id='c4')
 
278
        tree2.commit('unchanged', rev_id=b'b4')
 
279
        tree3.commit('unchanged', rev_id=b'c4')
267
280
 
268
281
        wt.merge_from_branch(tree3.branch)
269
282
        wt.merge_from_branch(tree2.branch, force=True)
270
 
        wt.commit('merge b4, c4', rev_id='a4')
 
283
        wt.commit('merge b4, c4', rev_id=b'a4')
271
284
 
272
 
        self.assertEqual(['a4'], wt.get_parent_ids())
 
285
        self.assertEqual([b'a4'], wt.get_parent_ids())
273
286
 
274
287
        os.chdir('tree')
275
288
        out, err = self.run_bzr('uncommit --force -r 2')
276
289
 
277
 
        self.assertEqual(['a2', 'c4', 'b4'], wt.get_parent_ids())
 
290
        self.assertEqual([b'a2', b'c4', b'b4'], wt.get_parent_ids())
278
291
 
279
292
    def test_uncommit_nonascii(self):
280
293
        tree = self.make_branch_and_tree('tree')
327
340
        wt = self.make_branch_and_tree('test')
328
341
        self.build_tree(['test/a/', 'test/a/b', 'test/a/c'])
329
342
        wt.add(['a', 'a/b', 'a/c'])
330
 
        wt.commit('initial commit', rev_id='a1')
 
343
        wt.commit('initial commit', rev_id=b'a1')
331
344
        wt.remove(['a/b', 'a/c'])
332
 
        wt.commit('remove b and c', rev_id='a2')
 
345
        wt.commit('remove b and c', rev_id=b'a2')
333
346
        self.run_bzr("uncommit --force test")