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)
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)
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)
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)
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)
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)