~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/selftest/versioning.py

  • Committer: Martin Pool
  • Date: 2005-09-22 12:12:53 UTC
  • Revision ID: mbp@sourcefrog.net-20050922121253-eae2a3240ea5e493
- upgrade can no longer be done in current version branches
  so don't test it

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
"""Tests of simple versioning operations"""
19
19
 
 
20
# TODO: test adding a file whose directory is not versioned
20
21
# TODO: test trying to commit within a directory that is not yet added
21
22
 
22
23
 
44
45
 
45
46
        from bzrlib.diff import compare_trees
46
47
        from bzrlib.branch import Branch
47
 
        b = Branch.open('.')
 
48
        b = Branch('.')
48
49
        
49
50
        delta = compare_trees(b.basis_tree(), b.working_tree())
50
51
 
54
55
        self.assertEquals(delta.added[0][0], 'foo')
55
56
        self.failIf(delta.modified)
56
57
 
57
 
    def test_branch_add_in_unversioned(self):
 
58
    def test_add_in_unversioned(self):
58
59
        """Try to add a file in an unversioned directory.
59
60
 
60
 
        "bzr add" adds the parent as necessary, but simple branch add
61
 
        doesn't do that.
 
61
        smart_add may eventually add the parent as necessary, but simple
 
62
        branch add doesn't do that.
62
63
        """
63
64
        from bzrlib.branch import Branch
64
65
        from bzrlib.errors import NotVersionedError
65
66
 
66
 
        b = Branch.initialize('.')
 
67
        b = Branch('.', init=True)
67
68
 
68
69
        self.build_tree(['foo/',
69
70
                         'foo/hello'])
74
75
        
75
76
        self.check_branch()
76
77
 
77
 
 
78
 
    def test_add_in_unversioned(self):
79
 
        """Try to add a file in an unversioned directory.
80
 
 
81
 
        "bzr add" should add the parent(s) as necessary.
82
 
        """
83
 
        from bzrlib.branch import Branch
84
 
        from bzrlib.commands import run_bzr
85
 
        eq = self.assertEqual
86
 
 
87
 
        b = Branch.initialize('.')
88
 
 
89
 
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
90
 
        eq(list(b.unknowns()), ['inertiatic'])
91
 
        run_bzr(['add', 'inertiatic/esp'])
92
 
        eq(list(b.unknowns()), [])
93
 
 
94
 
        # Multiple unversioned parents
95
 
        self.build_tree(['veil/', 'veil/cerpin/', 'veil/cerpin/taxt'])
96
 
        eq(list(b.unknowns()), ['veil'])
97
 
        run_bzr(['add', 'veil/cerpin/taxt'])
98
 
        eq(list(b.unknowns()), [])
99
 
 
100
 
        # Check whacky paths work
101
 
        self.build_tree(['cicatriz/', 'cicatriz/esp'])
102
 
        eq(list(b.unknowns()), ['cicatriz'])
103
 
        run_bzr(['add', 'inertiatic/../cicatriz/esp'])
104
 
        eq(list(b.unknowns()), [])
105
 
 
106
 
    def test_add_in_versioned(self):
107
 
        """Try to add a file in a versioned directory.
108
 
 
109
 
        "bzr add" should do this happily.
110
 
        """
111
 
        from bzrlib.branch import Branch
112
 
        from bzrlib.commands import run_bzr
113
 
        eq = self.assertEqual
114
 
 
115
 
        b = Branch.initialize('.')
116
 
 
117
 
        self.build_tree(['inertiatic/', 'inertiatic/esp'])
118
 
        eq(list(b.unknowns()), ['inertiatic'])
119
 
        run_bzr(['add', '--no-recurse', 'inertiatic'])
120
 
        eq(list(b.unknowns()), ['inertiatic'+os.sep+'esp'])
121
 
        run_bzr(['add', 'inertiatic/esp'])
122
 
        eq(list(b.unknowns()), [])
123
 
 
 
78
        
124
79
    def test_subdir_add(self):
125
80
        """Add in subdirectory should add only things from there down"""
126
81
        
131
86
        ass = self.assert_
132
87
        chdir = os.chdir
133
88
        
134
 
        b = Branch.initialize('.')
 
89
        b = Branch('.', init=True)
135
90
        self.build_tree(['src/', 'README'])
136
91
        
137
92
        eq(sorted(b.unknowns()),
159
114
        """After all the above changes, run the check and upgrade commands.
160
115
 
161
116
        The upgrade should be a no-op."""
162
 
        b = Branch.open('.')
 
117
        b = Branch('.')
163
118
        debug('branch has %d revisions', b.revno())
164
119
        
165
120
        debug('check branch...')
168
123
        
169
124
 
170
125
        
 
126
        
171
127
class SubdirCommit(TestCaseInTempDir):
172
128
 
173
129
    def test_subdir_commit(self):
178
134
        self.build_tree(['a/', 'b/'])
179
135
        
180
136
        run_bzr('init')
181
 
        b = Branch.open('.')
 
137
        b = Branch('.')
182
138
        
183
139
        for fn in ('a/one', 'b/two', 'top'):
184
140
            file(fn, 'w').write('old contents')
192
148
        debug('start selective subdir commit')
193
149
        run_bzr('commit', 'a', '-m', 'commit a only')
194
150
        
195
 
        old = b.revision_tree(b.get_rev_id(1))
196
 
        new = b.revision_tree(b.get_rev_id(2))
 
151
        old = b.revision_tree(b.lookup_revision(1))
 
152
        new = b.revision_tree(b.lookup_revision(2))
197
153
        
198
154
        eq(new.get_file_by_path('b/two').read(), 'old contents')
199
155
        eq(new.get_file_by_path('top').read(), 'old contents')
202
158
        os.chdir('a')
203
159
        # commit from here should do nothing
204
160
        run_bzr('commit', '.', '-m', 'commit subdir only', '--unchanged')
205
 
        v3 = b.revision_tree(b.get_rev_id(3))
 
161
        v3 = b.revision_tree(b.lookup_revision(3))
206
162
        eq(v3.get_file_by_path('b/two').read(), 'old contents')
207
163
        eq(v3.get_file_by_path('top').read(), 'old contents')
208
164
        eq(v3.get_file_by_path('a/one').read(), 'new contents')
209
165
                
210
166
        # commit in subdirectory commits whole tree
211
167
        run_bzr('commit', '-m', 'commit whole tree from subdir')
212
 
        v4 = b.revision_tree(b.get_rev_id(4))
 
168
        v4 = b.revision_tree(b.lookup_revision(4))
213
169
        eq(v4.get_file_by_path('b/two').read(), 'new contents')        
214
170
        eq(v4.get_file_by_path('top').read(), 'new contents')
215
171