/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/transport/local.py

  • Committer: Robert Collins
  • Date: 2010-02-28 10:08:29 UTC
  • mto: This revision was merged to the branch mainline in revision 5062.
  • Revision ID: robertc@robertcollins.net-20100228100829-nroa3qp8zi8jwxke
* bzr now has a ``.testr.conf`` file in its source tree configured
  appropriately for running tests with Testrepository
  (``https://launchpad.net/testrepository``). (Robert Collins)

* Documentation about testing with ``subunit`` has been tweaked.
  (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
from bzrlib import transport
43
43
 
44
44
 
45
 
_append_flags = os.O_CREAT | os.O_APPEND | os.O_WRONLY | osutils.O_BINARY | osutils.O_NOINHERIT
46
 
_put_non_atomic_flags = os.O_CREAT | os.O_TRUNC | os.O_WRONLY | osutils.O_BINARY | osutils.O_NOINHERIT
 
45
_append_flags = os.O_CREAT | os.O_APPEND | os.O_WRONLY | osutils.O_BINARY
 
46
_put_non_atomic_flags = os.O_CREAT | os.O_TRUNC | os.O_WRONLY | osutils.O_BINARY
47
47
 
48
48
 
49
49
class LocalTransport(transport.Transport):
160
160
            transport._file_streams[canonical_url].flush()
161
161
        try:
162
162
            path = self._abspath(relpath)
163
 
            return osutils.open_file(path, 'rb')
 
163
            return open(path, 'rb')
164
164
        except (IOError, OSError),e:
165
165
            if e.errno == errno.EISDIR:
166
166
                return LateReadError(relpath)
329
329
        # initialise the file
330
330
        self.put_bytes_non_atomic(relpath, "", mode=mode)
331
331
        abspath = self._abspath(relpath)
332
 
        handle = osutils.open_file(abspath, 'wb')
 
332
        handle = open(abspath, 'wb')
333
333
        if mode is not None:
334
334
            self._check_mode_and_size(abspath, handle.fileno(), mode)
335
335
        transport._file_streams[self.abspath(relpath)] = handle
399
399
 
400
400
    def rename(self, rel_from, rel_to):
401
401
        path_from = self._abspath(rel_from)
402
 
        path_to = self._abspath(rel_to)
403
402
        try:
404
403
            # *don't* call bzrlib.osutils.rename, because we want to
405
 
            # detect conflicting names on rename, and osutils.rename tries to
406
 
            # mask cross-platform differences there; however we do update the
407
 
            # exception to include the filenames
408
 
            os.rename(path_from, path_to)
 
404
            # detect errors on rename
 
405
            os.rename(path_from, self._abspath(rel_to))
409
406
        except (IOError, OSError),e:
410
407
            # TODO: What about path_to?
411
 
            self._translate_error(
412
 
                osutils._add_rename_error_details(e, path_from, path_to),
413
 
                path_from)
 
408
            self._translate_error(e, path_from)
414
409
 
415
410
    def move(self, rel_from, rel_to):
416
411
        """Move the item at rel_from to the location at rel_to"""
486
481
        path = relpath
487
482
        try:
488
483
            path = self._abspath(relpath)
489
 
            return os.lstat(path)
 
484
            return os.stat(path)
490
485
        except (IOError, OSError),e:
491
486
            self._translate_error(e, path)
492
487
 
520
515
        except (IOError, OSError),e:
521
516
            self._translate_error(e, path)
522
517
 
523
 
    if osutils.host_os_dereferences_symlinks():
524
 
        def readlink(self, relpath):
525
 
            """See Transport.readlink."""
526
 
            return osutils.readlink(self._abspath(relpath))
527
 
 
528
 
    if osutils.hardlinks_good():
529
 
        def hardlink(self, source, link_name):
530
 
            """See Transport.link."""
531
 
            try:
532
 
                os.link(self._abspath(source), self._abspath(link_name))
533
 
            except (IOError, OSError), e:
534
 
                self._translate_error(e, source)
535
 
 
536
 
    if osutils.has_symlinks():
537
 
        def symlink(self, source, link_name):
538
 
            """See Transport.symlink."""
539
 
            abs_link_dirpath = urlutils.dirname(self.abspath(link_name))
540
 
            source_rel = urlutils.file_relpath(
541
 
                urlutils.strip_trailing_slash(abs_link_dirpath),
542
 
                urlutils.strip_trailing_slash(self.abspath(source))
543
 
            )
544
 
 
545
 
            try:
546
 
                os.symlink(source_rel, self._abspath(link_name))
547
 
            except (IOError, OSError), e:
548
 
                self._translate_error(e, source_rel)
549
 
 
550
518
    def _can_roundtrip_unix_modebits(self):
551
519
        if sys.platform == 'win32':
552
520
            # anyone else?