Пример #1
0
 def copy_to(self, name, transport):
     """See VersionedFile.copy_to()."""
     # as we are all in memory always, just serialise to the new place.
     sio = StringIO()
     write_weave_v5(self, sio)
     sio.seek(0)
     transport.put_file(name + WeaveFile.WEAVE_SUFFIX, sio, self._filemode)
Пример #2
0
 def copy_to(self, name, transport):
     """See VersionedFile.copy_to()."""
     # as we are all in memory always, just serialise to the new place.
     sio = StringIO()
     write_weave_v5(self, sio)
     sio.seek(0)
     transport.put_file(name + WeaveFile.WEAVE_SUFFIX, sio, self._filemode)
Пример #3
0
    def initialize(self, a_bzrdir, shared=False, _internal=False):
        """Create a weave repository."""
        if shared:
            raise errors.IncompatibleFormat(self, a_bzrdir._format)

        if not _internal:
            # always initialized when the bzrdir is.
            return self.open(a_bzrdir, _found=True)
        
        # Create an empty weave
        sio = StringIO()
        weavefile.write_weave_v5(weave.Weave(), sio)
        empty_weave = sio.getvalue()

        mutter('creating repository in %s.', a_bzrdir.transport.base)
        
        # FIXME: RBC 20060125 don't peek under the covers
        # NB: no need to escape relative paths that are url safe.
        control_files = lockable_files.LockableFiles(a_bzrdir.transport,
            'branch-lock', lockable_files.TransportLock)
        control_files.create_lock()
        control_files.lock_write()
        transport = a_bzrdir.transport
        try:
            transport.mkdir_multi(['revision-store', 'weaves'],
                mode=a_bzrdir._get_dir_mode())
            transport.put_bytes_non_atomic('inventory.weave', empty_weave)
        finally:
            control_files.unlock()
        return self.open(a_bzrdir, _found=True)
Пример #4
0
    def initialize(self, a_bzrdir, shared=False, _internal=False):
        """Create a weave repository."""
        if shared:
            raise errors.IncompatibleFormat(self, a_bzrdir._format)

        if not _internal:
            # always initialized when the bzrdir is.
            return self.open(a_bzrdir, _found=True)

        # Create an empty weave
        sio = StringIO()
        weavefile.write_weave_v5(weave.Weave(), sio)
        empty_weave = sio.getvalue()

        mutter('creating repository in %s.', a_bzrdir.transport.base)

        # FIXME: RBC 20060125 don't peek under the covers
        # NB: no need to escape relative paths that are url safe.
        control_files = lockable_files.LockableFiles(
            a_bzrdir.transport, 'branch-lock', lockable_files.TransportLock)
        control_files.create_lock()
        control_files.lock_write()
        transport = a_bzrdir.transport
        try:
            transport.mkdir_multi(['revision-store', 'weaves'],
                                  mode=a_bzrdir._get_dir_mode())
            transport.put_bytes_non_atomic('inventory.weave', empty_weave)
        finally:
            control_files.unlock()
        return self.open(a_bzrdir, _found=True)
Пример #5
0
 def _save(self):
     """Save the weave."""
     self._check_write_ok()
     sio = StringIO()
     write_weave_v5(self, sio)
     sio.seek(0)
     bytes = sio.getvalue()
     path = self._weave_name + WeaveFile.WEAVE_SUFFIX
     try:
         self._transport.put_bytes(path, bytes, self._filemode)
     except errors.NoSuchFile:
         self._transport.mkdir(dirname(path))
         self._transport.put_bytes(path, bytes, self._filemode)
Пример #6
0
 def _save(self):
     """Save the weave."""
     self._check_write_ok()
     sio = StringIO()
     write_weave_v5(self, sio)
     sio.seek(0)
     bytes = sio.getvalue()
     path = self._weave_name + WeaveFile.WEAVE_SUFFIX
     try:
         self._transport.put_bytes(path, bytes, self._filemode)
     except errors.NoSuchFile:
         self._transport.mkdir(dirname(path))
         self._transport.put_bytes(path, bytes, self._filemode)
Пример #7
0
    def initialize(self, a_bzrdir, shared=False):
        """Create a weave repository.

        :param shared: If true the repository will be initialized as a shared
                       repository.
        """
        # Create an empty weave
        sio = StringIO()
        weavefile.write_weave_v5(weave.Weave(), sio)
        empty_weave = sio.getvalue()

        mutter('creating repository in %s.', a_bzrdir.transport.base)
        dirs = ['revision-store', 'weaves']
        files = [('inventory.weave', StringIO(empty_weave)), 
                 ]
        utf8_files = [('format', self.get_format_string())]
 
        self._upload_blank_content(a_bzrdir, dirs, files, utf8_files, shared)
        return self.open(a_bzrdir=a_bzrdir, _found=True)
Пример #8
0
    def initialize(self, a_bzrdir, shared=False):
        """Create a weave repository.

        :param shared: If true the repository will be initialized as a shared
                       repository.
        """
        # Create an empty weave
        sio = StringIO()
        weavefile.write_weave_v5(weave.Weave(), sio)
        empty_weave = sio.getvalue()

        mutter('creating repository in %s.', a_bzrdir.transport.base)
        dirs = ['revision-store', 'weaves']
        files = [
            ('inventory.weave', StringIO(empty_weave)),
        ]
        utf8_files = [('format', self.get_format_string())]

        self._upload_blank_content(a_bzrdir, dirs, files, utf8_files, shared)
        return self.open(a_bzrdir=a_bzrdir, _found=True)