~ubuntu-branches/ubuntu/hardy/bzr/hardy-proposed

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Adeodato Simó
  • Date: 2008-02-14 13:32:37 UTC
  • mfrom: (1.1.37 upstream)
  • Revision ID: james.westby@ubuntu.com-20080214133237-1dcmf4z41a6hg1i7
Tags: 1.2~rc1-1
First release candidate of the upcoming 1.2 release.

(NB: 1.1 final was never packaged because there were no code changes
between 1.1~rc1 and 1.1 itself.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
        self.failUnlessExists('sub/a.txt.BASE')
139
139
 
140
140
    def test_merge_remember(self):
141
 
        """Merge changes from one branch to another and test parent location."""
 
141
        """Merge changes from one branch to another, test submit location."""
142
142
        tree_a = self.make_branch_and_tree('branch_a')
143
143
        branch_a = tree_a.branch
144
144
        self.build_tree(['branch_a/a'])
168
168
        tree_b.add('d')
169
169
        self.run_bzr_error(['Working tree ".*" has uncommitted changes'],
170
170
                           'merge ../branch_a')
171
 
        self.assertEquals(abspath(branch_b.get_parent()), abspath(parent))
 
171
        self.assertEquals(abspath(branch_b.get_submit_branch()),
 
172
                          abspath(parent))
172
173
        # test implicit --remember after resolving conflict
173
174
        tree_b.commit('commit d')
174
175
        out, err = self.run_bzr('merge')
175
176
        
176
177
        base = urlutils.local_path_from_url(branch_a.base)
177
 
        self.assertEquals(out, 'Merging from remembered location %s\n' % (base,))
 
178
        self.assertEquals(out,
 
179
                          'Merging from remembered location %s\n' % (base,))
178
180
        self.assertEquals(err, '+N  b\nAll changes applied successfully.\n')
179
 
        self.assertEquals(abspath(branch_b.get_parent()), abspath(parent))
 
181
        self.assertEquals(abspath(branch_b.get_submit_branch()),
 
182
                          abspath(parent))
180
183
        # re-open tree as external run_bzr modified it
181
184
        tree_b = branch_b.bzrdir.open_workingtree()
182
185
        tree_b.commit('merge branch_a')
184
187
        out, err = self.run_bzr('merge ../branch_c --remember')
185
188
        self.assertEquals(out, '')
186
189
        self.assertEquals(err, '+N  c\nAll changes applied successfully.\n')
187
 
        self.assertEquals(abspath(branch_b.get_parent()),
 
190
        self.assertEquals(abspath(branch_b.get_submit_branch()),
188
191
                          abspath(branch_c.bzrdir.root_transport.base))
189
192
        # re-open tree as external run_bzr modified it
190
193
        tree_b = branch_b.bzrdir.open_workingtree()
410
413
        out, err = self.run_bzr(['merge', '-d', 'a', 'b'])
411
414
        self.assertContainsRe(err, 'Warning: criss-cross merge encountered.')
412
415
 
 
416
    def test_merge_from_submit(self):
 
417
        tree_a = self.make_branch_and_tree('a')
 
418
        tree_b = tree_a.bzrdir.sprout('b').open_workingtree()
 
419
        tree_c = tree_a.bzrdir.sprout('c').open_workingtree()
 
420
        out, err = self.run_bzr(['merge', '-d', 'c'])
 
421
        self.assertContainsRe(out, 'Merging from remembered location .*a\/$')
 
422
        tree_c.branch.set_submit_branch(tree_b.bzrdir.root_transport.base)
 
423
        out, err = self.run_bzr(['merge', '-d', 'c'])
 
424
        self.assertContainsRe(out, 'Merging from remembered location .*b\/$')
 
425
 
 
426
    def test_remember_sets_submit(self):
 
427
        tree_a = self.make_branch_and_tree('a')
 
428
        tree_b = tree_a.bzrdir.sprout('b').open_workingtree()
 
429
        self.assertIs(tree_b.branch.get_submit_branch(), None)
 
430
 
 
431
        # Remember should not happen if using default from parent
 
432
        out, err = self.run_bzr(['merge', '-d', 'b'])
 
433
        self.assertIs(tree_b.branch.get_submit_branch(), None)
 
434
 
 
435
        # Remember should happen if user supplies location
 
436
        out, err = self.run_bzr(['merge', '-d', 'b', 'a'])
 
437
        self.assertEqual(tree_b.branch.get_submit_branch(),
 
438
                         tree_a.bzrdir.root_transport.base)
 
439
 
413
440
    def test_weave_cherrypick(self):
414
441
        this_tree = self.make_branch_and_tree('this')
415
442
        self.build_tree_contents([('this/file', "a\n")])
449
476
        self.assertFileEqual('base-contents\n<<<<<<< TREE\nthis-contents\n'
450
477
                             '=======\nother-contents\n>>>>>>> MERGE-SOURCE\n',
451
478
                             'a/file')
 
479
 
 
480
    def test_merge_preview(self):
 
481
        this_tree = self.make_branch_and_tree('this')
 
482
        this_tree.commit('rev1')
 
483
        other_tree = this_tree.bzrdir.sprout('other').open_workingtree()
 
484
        self.build_tree_contents([('other/file', 'new line')])
 
485
        other_tree.add('file')
 
486
        other_tree.commit('rev2a')
 
487
        this_tree.commit('rev2b')
 
488
        out, err = self.run_bzr(['merge', '-d', 'this', 'other', '--preview'])
 
489
        self.assertContainsRe(out, '\+new line')
 
490
        self.assertNotContainsRe(err, '\+N  file\n')
 
491
        this_tree.lock_read()
 
492
        self.addCleanup(this_tree.unlock)
 
493
        self.assertEqual([],
 
494
                         list(this_tree._iter_changes(this_tree.basis_tree())))