~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/osutils.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-09-03 06:31:11 UTC
  • mfrom: (1739.2.12 readdir)
  • Revision ID: pqm@pqm.ubuntu.com-20080903063111-jr3ru4gv44xkwl2l
(robertc) Stat the contents of directories in inode order. (Robert
        Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1278
1278
    """
1279
1279
    _lstat = os.lstat
1280
1280
    _directory = _directory_kind
1281
 
    _listdir = os.listdir
 
1281
    # Use C accelerated directory listing.
 
1282
    _listdir = _read_dir
1282
1283
    _kind_from_mode = _formats.get
1283
1284
 
1284
1285
    # 0 - relpath, 1- basename, 2- kind, 3- stat, 4-toppath
1294
1295
 
1295
1296
        dirblock = []
1296
1297
        append = dirblock.append
1297
 
        for name in sorted(_listdir(top)):
 
1298
        # read_dir supplies in should-stat order.
 
1299
        for _, name in sorted(_listdir(top)):
1298
1300
            abspath = top_slash + name
1299
1301
            statvalue = _lstat(abspath)
1300
1302
            kind = _kind_from_mode(statvalue.st_mode & 0170000, 'unknown')
1301
1303
            append((relprefix + name, name, kind, statvalue, abspath))
 
1304
        dirblock.sort()
1302
1305
        yield (relroot, top), dirblock
1303
1306
 
1304
1307
        # push the user specified dirs from dirblock
1543
1546
        base = abspath(pathjoin(base, '..', '..'))
1544
1547
    filename = pathjoin(base, resource_relpath)
1545
1548
    return open(filename, 'rU').read()
 
1549
 
 
1550
 
 
1551
try:
 
1552
    from bzrlib._readdir_pyx import read_dir as _read_dir
 
1553
except ImportError:
 
1554
    from bzrlib._readdir_py import read_dir as _read_dir