~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree.py

  • Committer: Martin Pool
  • Date: 2005-07-07 10:31:36 UTC
  • Revision ID: mbp@sourcefrog.net-20050707103135-9b4d911d8df6e880
- fix pwk help

Show diffs side-by-side

added added

removed removed

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