156
156
t = control.get_repository_transport(None)
157
157
self.assertEqualDiff('Bazaar-NG Repository format 7',
158
158
t.get('format').read())
159
self.assertTrue(S_ISDIR(t.stat('revision-store').st_mode))
160
self.assertTrue(S_ISDIR(t.stat('weaves').st_mode))
161
self.assertEqualDiff('# bzr weave file v5\n'
164
t.get('inventory.weave').read())
166
def test_shared_disk_layout(self):
167
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
168
repo = repository.RepositoryFormat7().initialize(control, shared=True)
170
# format 'Bazaar-NG Repository format 7'
171
# inventory.weave == empty_weave
172
# empty revision-store directory
173
# empty weaves directory
174
# a 'shared-storage' marker file.
175
# lock is not present when unlocked
176
t = control.get_repository_transport(None)
177
self.assertEqualDiff('Bazaar-NG Repository format 7',
178
t.get('format').read())
179
self.assertEqualDiff('', t.get('shared-storage').read())
180
self.assertTrue(S_ISDIR(t.stat('revision-store').st_mode))
181
self.assertTrue(S_ISDIR(t.stat('weaves').st_mode))
182
self.assertEqualDiff('# bzr weave file v5\n'
185
t.get('inventory.weave').read())
186
self.assertFalse(t.has('branch-lock'))
188
def test_creates_lockdir(self):
189
"""Make sure it appears to be controlled by a LockDir existence"""
190
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
191
repo = repository.RepositoryFormat7().initialize(control, shared=True)
192
t = control.get_repository_transport(None)
193
# TODO: Should check there is a 'lock' toplevel directory,
194
# regardless of contents
195
self.assertFalse(t.has('lock/held/info'))
198
self.assertTrue(t.has('lock/held/info'))
200
# unlock so we don't get a warning about failing to do so
203
def test_uses_lockdir(self):
204
"""repo format 7 actually locks on lockdir"""
205
base_url = self.get_url()
206
control = bzrdir.BzrDirMetaFormat1().initialize(base_url)
207
repo = repository.RepositoryFormat7().initialize(control, shared=True)
208
t = control.get_repository_transport(None)
212
# make sure the same lock is created by opening it
213
repo = repository.Repository.open(base_url)
215
self.assertTrue(t.has('lock/held/info'))
217
self.assertFalse(t.has('lock/held/info'))
219
def test_shared_no_tree_disk_layout(self):
220
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
221
repo = repository.RepositoryFormat7().initialize(control, shared=True)
222
repo.set_make_working_trees(False)
224
# format 'Bazaar-NG Repository format 7'
226
# inventory.weave == empty_weave
227
# empty revision-store directory
228
# empty weaves directory
229
# a 'shared-storage' marker file.
230
t = control.get_repository_transport(None)
231
self.assertEqualDiff('Bazaar-NG Repository format 7',
232
t.get('format').read())
233
## self.assertEqualDiff('', t.get('lock').read())
234
self.assertEqualDiff('', t.get('shared-storage').read())
235
self.assertEqualDiff('', t.get('no-working-trees').read())
236
repo.set_make_working_trees(True)
237
self.assertFalse(t.has('no-working-trees'))
238
self.assertTrue(S_ISDIR(t.stat('revision-store').st_mode))
239
self.assertTrue(S_ISDIR(t.stat('weaves').st_mode))
240
self.assertEqualDiff('# bzr weave file v5\n'
243
t.get('inventory.weave').read())
246
class TestFormatKnit1(TestCaseWithTransport):
248
def test_disk_layout(self):
249
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
250
repo = repository.RepositoryFormatKnit1().initialize(control)
251
# in case of side effects of locking.
255
# format 'Bazaar-NG Knit Repository Format 1'
256
# lock: is a directory
257
# inventory.weave == empty_weave
258
# empty revision-store directory
259
# empty weaves directory
260
t = control.get_repository_transport(None)
261
self.assertEqualDiff('Bazaar-NG Knit Repository Format 1',
262
t.get('format').read())
263
# XXX: no locks left when unlocked at the moment
264
# self.assertEqualDiff('', t.get('lock').read())
265
self.assertTrue(S_ISDIR(t.stat('knits').st_mode))
268
def assertHasKnit(self, t, knit_name):
269
"""Assert that knit_name exists on t."""
270
self.assertEqualDiff('# bzr knit index 8\n',
271
t.get(knit_name + '.kndx').read())
273
self.assertTrue(t.has(knit_name + '.knit'))
275
def check_knits(self, t):
276
"""check knit content for a repository."""
277
self.assertHasKnit(t, 'inventory')
278
self.assertHasKnit(t, 'revisions')
279
self.assertHasKnit(t, 'signatures')
281
def test_shared_disk_layout(self):
282
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
283
repo = repository.RepositoryFormatKnit1().initialize(control, shared=True)
285
# format 'Bazaar-NG Knit Repository Format 1'
286
# lock: is a directory
287
# inventory.weave == empty_weave
288
# empty revision-store directory
289
# empty weaves directory
290
# a 'shared-storage' marker file.
291
t = control.get_repository_transport(None)
292
self.assertEqualDiff('Bazaar-NG Knit Repository Format 1',
293
t.get('format').read())
294
# XXX: no locks left when unlocked at the moment
295
# self.assertEqualDiff('', t.get('lock').read())
296
self.assertEqualDiff('', t.get('shared-storage').read())
297
self.assertTrue(S_ISDIR(t.stat('knits').st_mode))
300
def test_shared_no_tree_disk_layout(self):
301
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
302
repo = repository.RepositoryFormatKnit1().initialize(control, shared=True)
303
repo.set_make_working_trees(False)
305
# format 'Bazaar-NG Knit Repository Format 1'
307
# inventory.weave == empty_weave
308
# empty revision-store directory
309
# empty weaves directory
310
# a 'shared-storage' marker file.
311
t = control.get_repository_transport(None)
312
self.assertEqualDiff('Bazaar-NG Knit Repository Format 1',
313
t.get('format').read())
314
# XXX: no locks left when unlocked at the moment
315
# self.assertEqualDiff('', t.get('lock').read())
316
self.assertEqualDiff('', t.get('shared-storage').read())
317
self.assertEqualDiff('', t.get('no-working-trees').read())
318
repo.set_make_working_trees(True)
319
self.assertFalse(t.has('no-working-trees'))
320
self.assertTrue(S_ISDIR(t.stat('knits').st_mode))
159
self.assertEqualDiff('', t.get('lock').read())
160
self.assertTrue(S_ISDIR(t.stat('revision-store').st_mode))
161
self.assertTrue(S_ISDIR(t.stat('weaves').st_mode))
162
self.assertEqualDiff('# bzr weave file v5\n'
165
t.get('inventory.weave').read())
167
def test_shared_disk_layout(self):
168
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
169
repo = repository.RepositoryFormat7().initialize(control, shared=True)
171
# format 'Bazaar-NG Repository format 7'
173
# inventory.weave == empty_weave
174
# empty revision-store directory
175
# empty weaves directory
176
# a 'shared-storage' marker file.
177
t = control.get_repository_transport(None)
178
self.assertEqualDiff('Bazaar-NG Repository format 7',
179
t.get('format').read())
180
self.assertEqualDiff('', t.get('lock').read())
181
self.assertEqualDiff('', t.get('shared-storage').read())
182
self.assertTrue(S_ISDIR(t.stat('revision-store').st_mode))
183
self.assertTrue(S_ISDIR(t.stat('weaves').st_mode))
184
self.assertEqualDiff('# bzr weave file v5\n'
187
t.get('inventory.weave').read())
189
def test_shared_no_tree_disk_layout(self):
190
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
191
repo = repository.RepositoryFormat7().initialize(control, shared=True)
192
repo.set_make_working_trees(False)
194
# format 'Bazaar-NG Repository format 7'
196
# inventory.weave == empty_weave
197
# empty revision-store directory
198
# empty weaves directory
199
# a 'shared-storage' marker file.
200
t = control.get_repository_transport(None)
201
self.assertEqualDiff('Bazaar-NG Repository format 7',
202
t.get('format').read())
203
self.assertEqualDiff('', t.get('lock').read())
204
self.assertEqualDiff('', t.get('shared-storage').read())
205
self.assertEqualDiff('', t.get('no-working-trees').read())
206
repo.set_make_working_trees(True)
207
self.assertFalse(t.has('no-working-trees'))
208
self.assertTrue(S_ISDIR(t.stat('revision-store').st_mode))
209
self.assertTrue(S_ISDIR(t.stat('weaves').st_mode))
210
self.assertEqualDiff('# bzr weave file v5\n'
213
t.get('inventory.weave').read())
324
216
class InterString(repository.InterRepository):