~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/groupcompress.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-08-19 18:04:49 UTC
  • mfrom: (4593.5.43 1.19-known-graph-sorted)
  • Revision ID: pqm@pqm.ubuntu.com-20090819180449-p5dibldf9pcp24n4
(jam) Add VersionedFiles.get_known_graph_ancestry and
        KnownGraph.merge_sort()

Show diffs side-by-side

added added

removed removed

Lines of Context:
62
62
    # groupcompress ordering is approximately reverse topological,
63
63
    # properly grouped by file-id.
64
64
    per_prefix_map = {}
65
 
    for item in parent_map.iteritems():
66
 
        key = item[0]
 
65
    for key, value in parent_map.iteritems():
67
66
        if isinstance(key, str) or len(key) == 1:
68
67
            prefix = ''
69
68
        else:
70
69
            prefix = key[0]
71
70
        try:
72
 
            per_prefix_map[prefix].append(item)
 
71
            per_prefix_map[prefix][key] = value
73
72
        except KeyError:
74
 
            per_prefix_map[prefix] = [item]
 
73
            per_prefix_map[prefix] = {key: value}
75
74
 
76
75
    present_keys = []
77
76
    for prefix in sorted(per_prefix_map):
1099
1098
            self._check_lines_not_unicode(lines)
1100
1099
            self._check_lines_are_lines(lines)
1101
1100
 
 
1101
    def get_known_graph_ancestry(self, keys):
 
1102
        """Get a KnownGraph instance with the ancestry of keys."""
 
1103
        parent_map, missing_keys = self._index._graph_index.find_ancestry(keys,
 
1104
                                                                          0)
 
1105
        kg = _mod_graph.KnownGraph(parent_map)
 
1106
        return kg
 
1107
 
1102
1108
    def get_parent_map(self, keys):
1103
1109
        """Get a map of the graph parents of keys.
1104
1110