~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/memory.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
from bzrlib.errors import TransportError, NoSuchFile, FileExists, LockError
32
32
from bzrlib.transport import Transport, register_transport, Server
33
33
 
 
34
 
34
35
class MemoryStat(object):
35
36
 
36
37
    def __init__(self, size, is_dir, perms):
63
64
 
64
65
    def clone(self, offset=None):
65
66
        """See Transport.clone()."""
66
 
        if offset is None:
 
67
        if offset is None or offset == '':
67
68
            return copy(self)
68
69
        segments = offset.split('/')
69
70
        cwdsegments = self._cwd.split('/')[:-1]
85
86
 
86
87
    def abspath(self, relpath):
87
88
        """See Transport.abspath()."""
88
 
        return self.base[:-1] + self._abspath(relpath)[len(self._cwd) - 1:]
 
89
        # while a little slow, this is sufficiently fast to not matter in our
 
90
        # current environment - XXX RBC 20060404 move the clone '..' handling
 
91
        # into here and call abspath from clone
 
92
        temp_t = self.clone(relpath)
 
93
        if temp_t.base.count('/') == 1:
 
94
            return temp_t.base
 
95
        else:
 
96
            return temp_t.base[:-1]
89
97
 
90
98
    def append(self, relpath, f):
91
99
        """See Transport.append()."""