~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/store/__init__.py

  • Committer: Robert Collins
  • Date: 2005-10-16 23:50:29 UTC
  • mto: This revision was merged to the branch mainline in revision 1459.
  • Revision ID: robertc@lifelesslap.robertcollins.net-20051016235029-bae228a6289c5121
test for has with suffixed files

Show diffs side-by-side

added added

removed removed

Lines of Context:
80
80
        for f, fileid in entries:
81
81
            self.add(f, fileid)
82
82
 
83
 
    def has_id(self, file_id):
84
 
        """Return True or false for the presence of file_id in the store."""
 
83
    def has_id(self, file_id, suffix=None):
 
84
        """Return True or false for the presence of file_id in the store.
 
85
        
 
86
        suffix, if present, is a per file suffix, i.e. for digital signature 
 
87
        data."""
85
88
        raise NotImplementedError
86
89
 
87
90
    def listable(self):
189
192
 
190
193
        if self._prefixed:
191
194
            try:
192
 
                self._transport.mkdir(hash_prefix(fileid))
 
195
                self._transport.mkdir(hash_prefix(fileid)[:-1])
193
196
            except errors.FileExists:
194
197
                pass
195
198
 
201
204
        if '\\' in fileid or '/' in fileid:
202
205
            raise ValueError("invalid store id %r" % fileid)
203
206
 
204
 
    def has_id(self, fileid):
205
 
        fn = self._relpath(fileid)
 
207
    def has_id(self, fileid, suffix=None):
 
208
        """See Store.has_id."""
 
209
        if suffix is not None:
 
210
            fn = self._relpath(fileid, [suffix])
 
211
        else:
 
212
            fn = self._relpath(fileid)
206
213
        return self._transport.has(fn)
207
214
 
208
215
    def _get(self, filename):
300
307
            self.cache_store.add(self.source_store.get(id), id)
301
308
        return self.cache_store.get(id)
302
309
 
303
 
    def has_id(self, fileid):
304
 
        if fileid in self.cache_store:
 
310
    def has_id(self, fileid, suffix=None):
 
311
        """See Store.has_id."""
 
312
        if self.cache_store.has_id(fileid, suffix):
305
313
            return True
306
 
        if fileid in self.source_store:
 
314
        if self.source_store.has_id(fileid, suffix):
307
315
            # We could copy at this time
308
316
            return True
309
317
        return False