~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Robert Collins
  • Date: 2006-07-31 04:37:47 UTC
  • mto: (1852.15.8 Tree.walkdirs)
  • mto: This revision was merged to the branch mainline in revision 1899.
  • Revision ID: robertc@robertcollins.net-20060731043747-26893f2e873e7816
cleanup osutils.walkdirs changes after review.

Show diffs side-by-side

added added

removed removed

Lines of Context:
875
875
    to exclude some directories, they are then not descended into.
876
876
    
877
877
    The data yielded is of the form:
878
 
    ((directory-relpath, directory-path-from-root),
 
878
    ((directory-relpath, directory-path-from-top),
879
879
    [(relpath, basename, kind, lstat), ...]),
880
 
     - directory-relpath is the containing dirs relpath from prefix
881
 
     - directory-path-from-root is the containing dirs path from /
 
880
     - directory-relpath is the relative path of the directory being returned
 
881
       with respect to top. prefix is prepended to this.
 
882
     - directory-path-from-root is the path including top for this directory. 
 
883
       It is suitable for use with os functions.
882
884
     - relpath is the relative path within the subtree being walked.
883
885
     - basename is the basename of the path
884
 
     - kind is the kind of the file now. If unknonwn then the file is not
 
886
     - kind is the kind of the file now. If unknown then the file is not
885
887
       present within the tree - but it may be recorded as versioned. See
886
888
       versioned_kind.
887
889
     - lstat is the stat data *if* the file was statted.
897
899
    # summary in this, and the path from the root, may not agree 
898
900
    # depending on top and prefix - i.e. ./foo and foo as a pair leads to
899
901
    # potentially confusing output. We should make this more robust - but
900
 
    # not at a speed cot. RBC 20060731
 
902
    # not at a speed cost. RBC 20060731
901
903
    lstat = os.lstat
902
904
    pending = []
903
905
    _directory = _directory_kind
915
917
        for name in sorted(_listdir(top)):
916
918
            abspath = top + '/' + name
917
919
            statvalue = lstat(abspath)
918
 
            dirblock.append ((relroot + name, name, file_kind_from_stat_mode(statvalue.st_mode), statvalue, abspath))
 
920
            dirblock.append((relroot + name, name,
 
921
                file_kind_from_stat_mode(statvalue.st_mode),
 
922
                statvalue, abspath))
919
923
        yield (currentdir[0], top), dirblock
920
924
        # push the user specified dirs from dirblock
921
925
        for dir in reversed(dirblock):