~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/bzrdir.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-08-21 19:06:56 UTC
  • mfrom: (3641.2.2 ftp_mode_259855)
  • Revision ID: pqm@pqm.ubuntu.com-20080821190656-7uoj39e0c3q3b893
(jam) Fix bug #259855,
        if Transport.stat() returns 0 for permission bits, ignore it

Show diffs side-by-side

added added

removed removed

Lines of Context:
637
637
 
638
638
    def _find_creation_modes(self):
639
639
        """Determine the appropriate modes for files and directories.
640
 
        
 
640
 
641
641
        They're always set to be consistent with the base directory,
642
642
        assuming that this transport allows setting modes.
643
643
        """
656
656
            # directories and files are read-write for this user. This is
657
657
            # mostly a workaround for filesystems which lie about being able to
658
658
            # write to a directory (cygwin & win32)
659
 
            self._dir_mode = (st.st_mode & 07777) | 00700
660
 
            # Remove the sticky and execute bits for files
661
 
            self._file_mode = self._dir_mode & ~07111
 
659
            if (st.st_mode & 07777 == 00000):
 
660
                # FTP allows stat but does not return dir/file modes
 
661
                self._dir_mode = None
 
662
                self._file_mode = None
 
663
            else:
 
664
                self._dir_mode = (st.st_mode & 07777) | 00700
 
665
                # Remove the sticky and execute bits for files
 
666
                self._file_mode = self._dir_mode & ~07111
662
667
 
663
668
    def _get_file_mode(self):
664
669
        """Return Unix mode for newly created files, or None.