~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-12-02 04:45:19 UTC
  • mfrom: (2012.1.18 tree-compare)
  • Revision ID: pqm@pqm.ubuntu.com-20061202044519-b51893edd371d01d
New low-level interface for determining differences between trees

Show diffs side-by-side

added added

removed removed

Lines of Context:
555
555
        return os.path.getsize(self.id2abspath(file_id))
556
556
 
557
557
    @needs_read_lock
558
 
    def get_file_sha1(self, file_id, path=None):
 
558
    def get_file_sha1(self, file_id, path=None, stat_value=None):
559
559
        if not path:
560
560
            path = self._inventory.id2path(file_id)
561
 
        return self._hashcache.get_sha1(path)
 
561
        return self._hashcache.get_sha1(path, stat_value)
562
562
 
563
563
    def get_file_mtime(self, file_id, path=None):
564
564
        if not path:
1354
1354
    def kind(self, file_id):
1355
1355
        return file_kind(self.id2abspath(file_id))
1356
1356
 
 
1357
    def _comparison_data(self, entry, path):
 
1358
        abspath = self.abspath(path)
 
1359
        try:
 
1360
            stat_value = os.lstat(abspath)
 
1361
        except OSError, e:
 
1362
            if getattr(e, 'errno', None) == errno.ENOENT:
 
1363
                stat_value = None
 
1364
                kind = None
 
1365
                executable = False
 
1366
            else:
 
1367
                raise
 
1368
        else:
 
1369
            mode = stat_value.st_mode
 
1370
            kind = osutils.file_kind_from_stat_mode(mode)
 
1371
            if not supports_executable():
 
1372
                executable = entry.executable
 
1373
            else:
 
1374
                executable = bool(stat.S_ISREG(mode) and stat.S_IEXEC & mode)
 
1375
        return kind, executable, stat_value
 
1376
 
 
1377
    def _file_size(self, entry, stat_value):
 
1378
        return stat_value.st_size
 
1379
 
1357
1380
    def last_revision(self):
1358
1381
        """Return the last revision of the branch for this tree.
1359
1382