~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit_merge.py

Move working tree initialisation out from  Branch.initialize, deprecated Branch.initialize to Branch.create.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
import os
19
19
import shutil
20
20
 
21
 
from bzrlib.tests import TestCaseInTempDir
 
21
from bzrlib.tests import TestCaseWithTransport
22
22
from bzrlib.branch import Branch
23
23
from bzrlib.commit import commit
24
24
from bzrlib.errors import PointlessCommit, BzrError, PointlessCommit
27
27
from bzrlib.check import check
28
28
 
29
29
 
30
 
class TestCommitMerge(TestCaseInTempDir):
 
30
class TestCommitMerge(TestCaseWithTransport):
31
31
    """Tests for committing the results of a merge.
32
32
 
33
33
    These don't currently test the merge code, which is intentional to
36
36
 
37
37
    def test_merge_commit_empty(self):
38
38
        """Simple commit of two-way merge of empty trees."""
39
 
        os.mkdir('x')
40
 
        os.mkdir('y')
41
 
        bx = Branch.initialize('x')
42
 
        by = Branch.initialize('y')
 
39
        wtx = self.make_branch_and_tree('x')
 
40
        bx = wtx.branch
 
41
        wty = self.make_branch_and_tree('y')
 
42
        by = wty.branch
43
43
 
44
 
        commit(bx, 'commit one', rev_id='x@u-0-1', allow_pointless=True)
45
 
        commit(by, 'commit two', rev_id='y@u-0-1', allow_pointless=True)
 
44
        wtx.commit('commit one', rev_id='x@u-0-1', allow_pointless=True)
 
45
        wty.commit('commit two', rev_id='y@u-0-1', allow_pointless=True)
46
46
 
47
47
        fetcher = fetch(from_branch=bx, to_branch=by)
48
48
        self.assertEqual(1, fetcher.count_copied)
49
49
        self.assertEqual([], fetcher.failed_revisions)
50
50
        # just having the history there does nothing
51
51
        self.assertRaises(PointlessCommit,
52
 
                          commit,
53
 
                          by, 'no changes yet', rev_id='y@u-0-2',
 
52
                          wty.commit,
 
53
                          'no changes yet', rev_id='y@u-0-2',
54
54
                          allow_pointless=False)
55
 
        by.working_tree().add_pending_merge('x@u-0-1')
56
 
        commit(by, 'merge from x', rev_id='y@u-0-2', allow_pointless=False)
 
55
        wty.add_pending_merge('x@u-0-1')
 
56
        wty.commit('merge from x', rev_id='y@u-0-2', allow_pointless=False)
57
57
 
58
58
        self.assertEquals(by.revno(), 2)
59
59
        self.assertEquals(list(by.revision_history()),
64
64
 
65
65
    def test_merge_new_file(self):
66
66
        """Commit merge of two trees with no overlapping files."""
67
 
        self.build_tree(['x/', 'x/ecks', 'y/', 'y/why'])
68
 
 
69
 
        bx = Branch.initialize('x')
70
 
        by = Branch.initialize('y')
71
 
        bx.working_tree().add(['ecks'], ['ecks-id'])
72
 
        by.working_tree().add(['why'], ['why-id'])
73
 
 
74
 
        commit(bx, 'commit one', rev_id='x@u-0-1', allow_pointless=True)
75
 
        commit(by, 'commit two', rev_id='y@u-0-1', allow_pointless=True)
 
67
        wtx = self.make_branch_and_tree('x')
 
68
        bx = wtx.branch
 
69
        wty = self.make_branch_and_tree('y')
 
70
        by = wty.branch
 
71
 
 
72
        self.build_tree(['x/ecks', 'y/why'])
 
73
 
 
74
        wtx.add(['ecks'], ['ecks-id'])
 
75
        wty.add(['why'], ['why-id'])
 
76
 
 
77
        wtx.commit('commit one', rev_id='x@u-0-1', allow_pointless=True)
 
78
        wty.commit('commit two', rev_id='y@u-0-1', allow_pointless=True)
76
79
 
77
80
        fetch(from_branch=bx, to_branch=by)
78
81
        # we haven't merged the texts, but let's fake it
79
82
        shutil.copyfile('x/ecks', 'y/ecks')
80
 
        by.working_tree().add(['ecks'], ['ecks-id'])
81
 
        by.working_tree().add_pending_merge('x@u-0-1')
 
83
        wty.add(['ecks'], ['ecks-id'])
 
84
        wty.add_pending_merge('x@u-0-1')
82
85
 
83
86
        # partial commit of merges is currently not allowed, because
84
87
        # it would give different merge graphs for each file which
85
88
        # might be complex.  it can be allowed in the future.
86
89
        self.assertRaises(Exception,
87
 
                          commit,
88
 
                          by, 'partial commit', allow_pointless=False,
 
90
                          wty.commit,
 
91
                          'partial commit', allow_pointless=False,
89
92
                          specific_files=['ecks'])
90
93
        
91
 
        commit(by, 'merge from x', rev_id='y@u-0-2', allow_pointless=False)
 
94
        wty.commit('merge from x', rev_id='y@u-0-2', allow_pointless=False)
92
95
        tree = by.revision_tree('y@u-0-2')
93
96
        inv = tree.inventory
94
97
        self.assertEquals(inv['ecks-id'].revision, 'x@u-0-1')