~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/__init__.py

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008, 2010 Canonical Ltd
 
1
# Copyright (C) 2005-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
1060
1060
        """
1061
1061
        source = self.clone(from_relpath)
1062
1062
        target = self.clone(to_relpath)
1063
 
        target.mkdir('.')
 
1063
 
 
1064
        # create target directory with the same rwx bits as source.
 
1065
        # use mask to ensure that bits other than rwx are ignored.
 
1066
        stat = self.stat(from_relpath)
 
1067
        target.mkdir('.', stat.st_mode & 0777)
 
1068
 
1064
1069
        source.copy_tree_to_transport(target)
1065
1070
 
1066
1071
    def copy_tree_to_transport(self, to_transport):
1202
1207
        count = self._iterate_over(relpaths, gather, pb, 'stat', expand=False)
1203
1208
        return stats
1204
1209
 
 
1210
    def readlink(self, relpath):
 
1211
        """Return a string representing the path to which the symbolic link points."""
 
1212
        raise errors.TransportNotPossible("Dereferencing symlinks is not supported on %s" % self)
 
1213
 
 
1214
    def hardlink(self, source, link_name):
 
1215
        """Create a hardlink pointing to source named link_name."""
 
1216
        raise errors.TransportNotPossible("Hard links are not supported on %s" % self)
 
1217
 
 
1218
    def symlink(self, source, link_name):
 
1219
        """Create a symlink pointing to source named link_name."""
 
1220
        raise errors.TransportNotPossible("Symlinks are not supported on %s" % self)
 
1221
 
1205
1222
    def listable(self):
1206
1223
        """Return True if this store supports listing."""
1207
1224
        raise NotImplementedError(self.listable)
1831
1848
 
1832
1849
 
1833
1850
transport_server_registry = registry.Registry()
1834
 
transport_server_registry.register_lazy('bzr', 'bzrlib.smart.server', 
 
1851
transport_server_registry.register_lazy('bzr', 'bzrlib.smart.server',
1835
1852
    'serve_bzr', help="The Bazaar smart server protocol over TCP. (default port: 4155)")
1836
1853
transport_server_registry.default_key = 'bzr'