~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/index.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-06 06:48:25 UTC
  • mfrom: (4070.8.6 debug-config)
  • Revision ID: pqm@pqm.ubuntu.com-20090306064825-kbpwggw21dygeix6
(mbp) debug_flags configuration option

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Indexing facilities."""
18
18
 
99
99
        self._nodes_by_key = None
100
100
        self._key_length = key_elements
101
101
        self._optimize_for_size = False
102
 
        self._combine_backing_indices = True
103
102
 
104
103
    def _check_key(self, key):
105
104
        """Raise BadIndexKey if key is not a valid key for this index."""
316
315
                (len(result.getvalue()), expected_bytes))
317
316
        return result
318
317
 
319
 
    def set_optimize(self, for_size=None, combine_backing_indices=None):
 
318
    def set_optimize(self, for_size=True):
320
319
        """Change how the builder tries to optimize the result.
321
320
 
322
321
        :param for_size: Tell the builder to try and make the index as small as
323
322
            possible.
324
 
        :param combine_backing_indices: If the builder spills to disk to save
325
 
            memory, should the on-disk indices be combined. Set to True if you
326
 
            are going to be probing the index, but to False if you are not. (If
327
 
            you are not querying, then the time spent combining is wasted.)
328
323
        :return: None
329
324
        """
330
325
        # GraphIndexBuilder itself doesn't pay attention to the flag yet, but
331
326
        # other builders do.
332
 
        if for_size is not None:
333
 
            self._optimize_for_size = for_size
334
 
        if combine_backing_indices is not None:
335
 
            self._combine_backing_indices = combine_backing_indices
 
327
        self._optimize_for_size = for_size
336
328
 
337
329
 
338
330
class GraphIndex(object):
1191
1183
                self.__class__.__name__,
1192
1184
                ', '.join(map(repr, self._indices)))
1193
1185
 
 
1186
    @symbol_versioning.deprecated_method(symbol_versioning.one_one)
 
1187
    def get_parents(self, revision_ids):
 
1188
        """See graph._StackedParentsProvider.get_parents.
 
1189
 
 
1190
        This implementation thunks the graph.Graph.get_parents api across to
 
1191
        GraphIndex.
 
1192
 
 
1193
        :param revision_ids: An iterable of graph keys for this graph.
 
1194
        :return: A list of parent details for each key in revision_ids.
 
1195
            Each parent details will be one of:
 
1196
             * None when the key was missing
 
1197
             * (NULL_REVISION,) when the key has no parents.
 
1198
             * (parent_key, parent_key...) otherwise.
 
1199
        """
 
1200
        parent_map = self.get_parent_map(revision_ids)
 
1201
        return [parent_map.get(r, None) for r in revision_ids]
 
1202
 
1194
1203
    def get_parent_map(self, keys):
1195
1204
        """See graph._StackedParentsProvider.get_parent_map"""
1196
1205
        search_keys = set(keys)