~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/hashcache.py

  • Committer: Martin Pool
  • Date: 2005-09-05 04:07:23 UTC
  • Revision ID: mbp@sourcefrog.net-20050905040723-55f55e8121ccfed9
- advance version to 0.1pre

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
# TODO: Perhaps return more details on the file to avoid statting it
24
24
# again: nonexistent, file type, size, etc
25
25
 
26
 
# TODO: Perhaps use a Python pickle instead of a text file; might be faster.
27
 
 
28
26
 
29
27
 
30
28
CACHE_HEADER = "### bzr hashcache v5\n"
33
31
 
34
32
from bzrlib.osutils import sha_file
35
33
from bzrlib.trace import mutter, warning
36
 
from bzrlib.atomicfile import AtomicFile
37
 
 
38
34
 
39
35
 
40
36
 
189
185
 
190
186
    def write(self):
191
187
        """Write contents of cache to file."""
 
188
        from atomicfile import AtomicFile
 
189
 
192
190
        outf = AtomicFile(self.cache_file_name(), 'wb')
193
191
        try:
194
192
            print >>outf, CACHE_HEADER,
224
222
            inf = file(fn, 'rb', buffering=65000)
225
223
        except IOError, e:
226
224
            mutter("failed to open %s: %s" % (fn, e))
227
 
            # better write it now so it is valid
228
 
            self.needs_write = True
229
225
            return
230
226
 
231
227
 
233
229
        if hdr != CACHE_HEADER:
234
230
            mutter('cache header marker not found at top of %s; discarding cache'
235
231
                   % fn)
236
 
            self.needs_write = True
237
232
            return
238
233
 
239
234
        for l in inf: