~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/local.py

Merge bzr.ab.integration

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
    def __init__(self, base):
36
36
        """Set the base path where files will be stored."""
37
37
        if base.startswith('file://'):
38
 
            base = base[7:]
 
38
            base = base[len('file://'):]
39
39
        # realpath is incompatible with symlinks. When we traverse
40
40
        # up we might be able to normpath stuff. RBC 20051003
41
41
        base = normpath(abspath(base))
111
111
        """Iter the relative paths of files in the transports sub-tree."""
112
112
        queue = list(self.list_dir(u'.'))
113
113
        while queue:
114
 
            relpath = urllib.quote(queue.pop(0))
 
114
            relpath = queue.pop(0)
115
115
            st = self.stat(relpath)
116
116
            if S_ISDIR(st[ST_MODE]):
117
117
                for i, basename in enumerate(self.list_dir(relpath)):
138
138
            fp = open(self.abspath(relpath), 'ab')
139
139
        except (IOError, OSError),e:
140
140
            self._translate_error(e, relpath)
 
141
        # win32 workaround (tell on an unwritten file returns 0)
 
142
        fp.seek(0, 2)
141
143
        result = fp.tell()
142
144
        self._pump(f, fp)
143
145
        return result
222
224
        WARNING: many transports do not support this, so trying avoid using
223
225
        it if at all possible.
224
226
        """
225
 
        path = relpath
 
227
        path = self.abspath(relpath)
226
228
        try:
227
 
            path = self.abspath(relpath)
228
 
            return os.listdir(path)
229
 
        except (IOError, OSError),e:
 
229
            return [urllib.quote(entry) for entry in os.listdir(path)]
 
230
        except (IOError, OSError), e:
230
231
            self._translate_error(e, path)
231
232
 
232
233
    def stat(self, relpath):