~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/index.py

CombinedGraphIndex.iter_entries_prefix can now reload when needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1233
1233
        if not keys:
1234
1234
            return
1235
1235
        seen_keys = set()
1236
 
        for index in self._indices:
1237
 
            for node in index.iter_entries_prefix(keys):
1238
 
                if node[1] in seen_keys:
1239
 
                    continue
1240
 
                seen_keys.add(node[1])
1241
 
                yield node
 
1236
        while True:
 
1237
            try:
 
1238
                for index in self._indices:
 
1239
                    for node in index.iter_entries_prefix(keys):
 
1240
                        if node[1] in seen_keys:
 
1241
                            continue
 
1242
                        seen_keys.add(node[1])
 
1243
                        yield node
 
1244
                return
 
1245
            except errors.NoSuchFile:
 
1246
                self._reload_or_raise()
1242
1247
 
1243
1248
    def key_count(self):
1244
1249
        """Return an estimate of the number of keys in this index.