~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree.py

  • Committer: Martin Pool
  • Date: 2005-05-12 02:18:48 UTC
  • Revision ID: mbp@sourcefrog.net-20050512021848-d1a727373aee2c85
- WorkingTree loads statcache in constructor and holds
  it permanently

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
import bzrlib.tree
21
21
from errors import BzrCheckError
22
22
from trace import mutter
23
 
 
 
23
import statcache
24
24
 
25
25
class WorkingTree(bzrlib.tree.Tree):
26
26
    """Working copy tree.
37
37
        self._inventory = inv
38
38
        self.basedir = basedir
39
39
        self.path2id = inv.path2id
 
40
        self._update_statcache()
40
41
 
41
42
    def __iter__(self):
42
43
        """Iterate through file_ids for this tree.
44
45
        file_ids are in a WorkingTree if they are in the working inventory
45
46
        and the working file exists.
46
47
        """
47
 
        self._update_statcache()
48
48
        inv = self._inventory
49
49
        for file_id in self._inventory:
50
50
            # TODO: This is slightly redundant; we should be able to just
83
83
        # files that have been deleted are excluded
84
84
        if not self.inventory.has_id(file_id):
85
85
            return False
86
 
        self._update_statcache()
87
86
        if file_id in self._statcache:
88
87
            return True
89
88
        return os.path.exists(self.abspath(self.id2path(file_id)))
103
102
 
104
103
 
105
104
    def get_file_sha1(self, file_id):
106
 
        import statcache
107
 
        self._update_statcache()
108
105
        return self._statcache[file_id][statcache.SC_SHA1]
109
106
 
110
107