/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/plugins/weave_fmt/repository.py

  • Committer: Jelmer Vernooij
  • Date: 2017-06-10 16:40:42 UTC
  • mfrom: (6653.6.7 rename-controldir)
  • mto: This revision was merged to the branch mainline in revision 6690.
  • Revision ID: jelmer@jelmer.uk-20170610164042-zrxqgy2htyduvke2
MergeĀ rename-controldirĀ branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
94
94
            return u''
95
95
        return urlutils.escape(osutils.safe_unicode(file_or_path))
96
96
 
97
 
    def __init__(self, _format, a_bzrdir):
 
97
    def __init__(self, _format, a_controldir):
98
98
        # we reuse one control files instance.
99
 
        dir_mode = a_bzrdir._get_dir_mode()
100
 
        file_mode = a_bzrdir._get_file_mode()
 
99
        dir_mode = a_controldir._get_dir_mode()
 
100
        file_mode = a_controldir._get_file_mode()
101
101
 
102
102
        def get_store(name, compressed=True, prefixed=False):
103
103
            # FIXME: This approach of assuming stores are all entirely compressed
105
105
            # some existing branches where there's a mixture; we probably
106
106
            # still want the option to look for both.
107
107
            relpath = self._escape(name)
108
 
            store = TextStore(a_bzrdir.transport.clone(relpath),
 
108
            store = TextStore(a_controldir.transport.clone(relpath),
109
109
                              prefixed=prefixed, compressed=compressed,
110
110
                              dir_mode=dir_mode,
111
111
                              file_mode=file_mode)
118
118
            # which allows access to this old info.
119
119
            self.inventory_store = get_store('inventory-store')
120
120
            self._text_store = get_store('text-store')
121
 
        super(AllInOneRepository, self).__init__(_format, a_bzrdir, a_bzrdir._control_files)
 
121
        super(AllInOneRepository, self).__init__(_format, a_controldir, a_controldir._control_files)
122
122
 
123
123
    @needs_read_lock
124
124
    def _all_possible_ids(self):
141
141
    def _activate_new_inventory(self):
142
142
        """Put a replacement inventory.new into use as inventories."""
143
143
        # Copy the content across
144
 
        t = self.bzrdir._control_files._transport
 
144
        t = self.controldir._control_files._transport
145
145
        t.copy('inventory.new.weave', 'inventory.weave')
146
146
        # delete the temp inventory
147
147
        t.delete('inventory.new.weave')
149
149
        self.inventories.keys()
150
150
 
151
151
    def _backup_inventory(self):
152
 
        t = self.bzrdir._control_files._transport
 
152
        t = self.controldir._control_files._transport
153
153
        t.copy('inventory.weave', 'inventory.backup.weave')
154
154
 
155
155
    def _temp_inventories(self):
156
 
        t = self.bzrdir._control_files._transport
 
156
        t = self.controldir._control_files._transport
157
157
        return self._format._get_inventories(t, self, 'inventory.new')
158
158
 
159
159
    def get_commit_builder(self, branch, parents, config, timestamp=None,
205
205
class WeaveMetaDirRepository(MetaDirVersionedFileRepository):
206
206
    """A subclass of MetaDirRepository to set weave specific policy."""
207
207
 
208
 
    def __init__(self, _format, a_bzrdir, control_files):
209
 
        super(WeaveMetaDirRepository, self).__init__(_format, a_bzrdir, control_files)
 
208
    def __init__(self, _format, a_controldir, control_files):
 
209
        super(WeaveMetaDirRepository, self).__init__(_format, a_controldir, control_files)
210
210
        self._serializer = _format._serializer
211
211
 
212
212
    @needs_read_lock
289
289
    # just claim that checking for this inconsistency is not required.
290
290
    revision_graph_can_have_wrong_parents = False
291
291
 
292
 
    def initialize(self, a_bzrdir, shared=False, _internal=False):
 
292
    def initialize(self, a_controldir, shared=False, _internal=False):
293
293
        """Create a weave repository."""
294
294
        if shared:
295
 
            raise errors.IncompatibleFormat(self, a_bzrdir._format)
 
295
            raise errors.IncompatibleFormat(self, a_controldir._format)
296
296
 
297
297
        if not _internal:
298
298
            # always initialized when the bzrdir is.
299
 
            return self.open(a_bzrdir, _found=True)
 
299
            return self.open(a_controldir, _found=True)
300
300
 
301
301
        # Create an empty weave
302
302
        sio = BytesIO()
303
303
        weavefile.write_weave_v5(weave.Weave(), sio)
304
304
        empty_weave = sio.getvalue()
305
305
 
306
 
        trace.mutter('creating repository in %s.', a_bzrdir.transport.base)
 
306
        trace.mutter('creating repository in %s.', a_controldir.transport.base)
307
307
 
308
308
        # FIXME: RBC 20060125 don't peek under the covers
309
309
        # NB: no need to escape relative paths that are url safe.
310
 
        control_files = lockable_files.LockableFiles(a_bzrdir.transport,
 
310
        control_files = lockable_files.LockableFiles(a_controldir.transport,
311
311
            'branch-lock', lockable_files.TransportLock)
312
312
        control_files.create_lock()
313
313
        control_files.lock_write()
314
 
        transport = a_bzrdir.transport
 
314
        transport = a_controldir.transport
315
315
        try:
316
316
            transport.mkdir_multi(['revision-store', 'weaves'],
317
 
                mode=a_bzrdir._get_dir_mode())
 
317
                mode=a_controldir._get_dir_mode())
318
318
            transport.put_bytes_non_atomic('inventory.weave', empty_weave,
319
 
                mode=a_bzrdir._get_file_mode())
 
319
                mode=a_controldir._get_file_mode())
320
320
        finally:
321
321
            control_files.unlock()
322
 
        repository = self.open(a_bzrdir, _found=True)
323
 
        self._run_post_repo_init_hooks(repository, a_bzrdir, shared)
 
322
        repository = self.open(a_controldir, _found=True)
 
323
        self._run_post_repo_init_hooks(repository, a_controldir, shared)
324
324
        return repository
325
325
 
326
 
    def open(self, a_bzrdir, _found=False):
 
326
    def open(self, a_controldir, _found=False):
327
327
        """See RepositoryFormat.open()."""
328
328
        if not _found:
329
329
            # we are being called directly and must probe.
330
330
            raise NotImplementedError
331
331
 
332
 
        repo_transport = a_bzrdir.get_repository_transport(None)
333
 
        result = AllInOneRepository(_format=self, a_bzrdir=a_bzrdir)
 
332
        repo_transport = a_controldir.get_repository_transport(None)
 
333
        result = AllInOneRepository(_format=self, a_controldir=a_controldir)
334
334
        result.revisions = self._get_revisions(repo_transport, result)
335
335
        result.signatures = self._get_signatures(repo_transport, result)
336
336
        result.inventories = self._get_inventories(repo_transport, result)
542
542
        return versionedfile.ThunkedVersionedFiles(base_transport,
543
543
            weave.WeaveFile, mapper, repo.is_locked)
544
544
 
545
 
    def initialize(self, a_bzrdir, shared=False):
 
545
    def initialize(self, a_controldir, shared=False):
546
546
        """Create a weave repository.
547
547
 
548
548
        :param shared: If true the repository will be initialized as a shared
553
553
        weavefile.write_weave_v5(weave.Weave(), sio)
554
554
        empty_weave = sio.getvalue()
555
555
 
556
 
        trace.mutter('creating repository in %s.', a_bzrdir.transport.base)
 
556
        trace.mutter('creating repository in %s.', a_controldir.transport.base)
557
557
        dirs = ['revision-store', 'weaves']
558
558
        files = [('inventory.weave', BytesIO(empty_weave)),
559
559
                 ]
560
560
        utf8_files = [('format', self.get_format_string())]
561
561
 
562
 
        self._upload_blank_content(a_bzrdir, dirs, files, utf8_files, shared)
563
 
        return self.open(a_bzrdir=a_bzrdir, _found=True)
 
562
        self._upload_blank_content(a_controldir, dirs, files, utf8_files, shared)
 
563
        return self.open(a_controldir=a_controldir, _found=True)
564
564
 
565
 
    def open(self, a_bzrdir, _found=False, _override_transport=None):
 
565
    def open(self, a_controldir, _found=False, _override_transport=None):
566
566
        """See RepositoryFormat.open().
567
567
 
568
568
        :param _override_transport: INTERNAL USE ONLY. Allows opening the
570
570
                                    than normal. I.e. during 'upgrade'.
571
571
        """
572
572
        if not _found:
573
 
            format = RepositoryFormatMetaDir.find_format(a_bzrdir)
 
573
            format = RepositoryFormatMetaDir.find_format(a_controldir)
574
574
        if _override_transport is not None:
575
575
            repo_transport = _override_transport
576
576
        else:
577
 
            repo_transport = a_bzrdir.get_repository_transport(None)
 
577
            repo_transport = a_controldir.get_repository_transport(None)
578
578
        control_files = lockable_files.LockableFiles(repo_transport,
579
579
                                'lock', lockdir.LockDir)
580
 
        result = WeaveMetaDirRepository(_format=self, a_bzrdir=a_bzrdir,
 
580
        result = WeaveMetaDirRepository(_format=self, a_controldir=a_controldir,
581
581
            control_files=control_files)
582
582
        result.revisions = self._get_revisions(repo_transport, result)
583
583
        result.signatures = self._get_signatures(repo_transport, result)