~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_update.py

Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2006, 2009 Canonical Ltd
2
2
# -*- coding: utf-8 -*-
3
3
#
4
4
# This program is free software; you can redistribute it and/or modify
171
171
        # get all three files and a pending merge.
172
172
        out, err = self.run_bzr('update checkout')
173
173
        self.assertEqual('', out)
174
 
        self.assertEqualDiff("""+N  file_b
 
174
        self.assertEqualDiff("""+N  file
175
175
All changes applied successfully.
176
 
+N  file
 
176
+N  file_b
177
177
All changes applied successfully.
178
178
Updated to revision 1 of branch %s
179
179
Your local commits will now show as pending merges with 'bzr status', and can be committed with 'bzr commit'.
242
242
        self.run_bzr('update checkout')
243
243
 
244
244
    def test_update_dash_r(self):
 
245
        # Test that 'bzr update' works correctly when you have
 
246
        # an update in the master tree, and a lightweight checkout
 
247
        # which has merged another branch
245
248
        master = self.make_branch_and_tree('master')
246
249
        os.chdir('master')
247
250
        self.build_tree(['./file1'])
263
266
        self.assertEquals(['m1'], master.get_parent_ids())
264
267
 
265
268
    def test_update_dash_r_outside_history(self):
 
269
        # Test that 'bzr update' works correctly when you have
 
270
        # an update in the master tree, and a lightweight checkout
 
271
        # which has merged another branch
266
272
        master = self.make_branch_and_tree('master')
267
273
        self.build_tree(['master/file1'])
268
274
        master.add(['file1'])
309
315
2>All changes applied successfully.
310
316
2>Updated to revision 2 of branch .../master
311
317
''')
312
 
 
313
 
    def test_update_checkout_prevent_double_merge(self):
314
 
        """"Launchpad bug 113809 in bzr "update performs two merges"
315
 
        https://launchpad.net/bugs/113809"""
316
 
        master = self.make_branch_and_tree('master')
317
 
        self.build_tree_contents([('master/file', 'initial contents\n')])
318
 
        master.add(['file'])
319
 
        master.commit('one', rev_id='m1')
320
 
 
321
 
        checkout = master.branch.create_checkout('checkout')
322
 
        lightweight = checkout.branch.create_checkout('lightweight',
323
 
                                                      lightweight=True)
324
 
 
325
 
        # time to create a mess
326
 
        # add a commit to the master
327
 
        self.build_tree_contents([('master/file', 'master\n')])
328
 
        master.commit('two', rev_id='m2')
329
 
        self.build_tree_contents([('master/file', 'master local changes\n')])
330
 
 
331
 
        # local commit on the checkout
332
 
        self.build_tree_contents([('checkout/file', 'checkout\n')])
333
 
        checkout.commit('tree', rev_id='c2', local=True)
334
 
        self.build_tree_contents([('checkout/file',
335
 
                                   'checkout local changes\n')])
336
 
 
337
 
        # lightweight 
338
 
        self.build_tree_contents([('lightweight/file',
339
 
                                   'lightweight local changes\n')])
340
 
 
341
 
        # now update (and get conflicts)
342
 
        out, err = self.run_bzr('update lightweight', retcode=1)
343
 
        self.assertEqual('', out)
344
 
        self.assertFileEqual('''\
345
 
<<<<<<< TREE
346
 
lightweight local changes
347
 
=======
348
 
checkout
349
 
>>>>>>> MERGE-SOURCE
350
 
''',
351
 
                             'lightweight/file')
352
 
 
353
 
        # resolve it
354
 
        self.build_tree_contents([('lightweight/file',
355
 
                                   'lightweight+checkout\n')])
356
 
        self.run_bzr('resolve lightweight/file')
357
 
 
358
 
        # check we get the second conflict
359
 
        out, err = self.run_bzr('update lightweight', retcode=1)
360
 
        self.assertEqual('', out)
361
 
        self.assertFileEqual('''\
362
 
<<<<<<< TREE
363
 
lightweight+checkout
364
 
=======
365
 
master
366
 
>>>>>>> MERGE-SOURCE
367
 
''',
368
 
                             'lightweight/file')
369