/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/_known_graph_py.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2020-05-06 03:06:18 UTC
  • mfrom: (7500.1.2 trunk-merge-3.1)
  • Revision ID: breezy.the.bot@gmail.com-20200506030618-131sjbc876q7on66
Merge the 3.1 branch.

Merged from https://code.launchpad.net/~jelmer/brz/trunk-merge-3.1/+merge/383481

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
"""Implementation of Graph algorithms when we have already loaded everything.
18
18
"""
19
19
 
20
 
from __future__ import absolute_import
21
 
 
22
20
try:
23
21
    from collections.abc import deque
24
22
except ImportError:  # python < 3.7
27
25
    errors,
28
26
    revision,
29
27
    )
30
 
from .sixish import (
31
 
    viewitems,
32
 
    viewvalues,
33
 
    )
34
28
 
35
29
 
36
30
class _KnownGraphNode(object):
88
82
          child_keys,
89
83
        """
90
84
        nodes = self._nodes
91
 
        for key, parent_keys in viewitems(parent_map):
 
85
        for key, parent_keys in parent_map.items():
92
86
            if key in nodes:
93
87
                node = nodes[key]
94
88
                node.parent_keys = parent_keys
104
98
                parent_node.child_keys.append(key)
105
99
 
106
100
    def _find_tails(self):
107
 
        return [node for node in viewvalues(self._nodes)
 
101
        return [node for node in self._nodes.values()
108
102
                if not node.parent_keys]
109
103
 
110
104
    def _find_tips(self):
111
 
        return [node for node in viewvalues(self._nodes)
 
105
        return [node for node in self._nodes.values()
112
106
                if not node.child_keys]
113
107
 
114
108
    def _find_gdfo(self):
242
236
        seen = set()
243
237
        pending = []
244
238
        min_gdfo = None
245
 
        for node in viewvalues(candidate_nodes):
 
239
        for node in candidate_nodes.values():
246
240
            if node.parent_keys:
247
241
                pending.extend(node.parent_keys)
248
242
            if min_gdfo is None or node.gdfo < min_gdfo:
269
263
 
270
264
        All parents must occur before all children.
271
265
        """
272
 
        for node in viewvalues(self._nodes):
 
266
        for node in self._nodes.values():
273
267
            if node.gdfo is None:
274
268
                raise errors.GraphCycleError(self._nodes)
275
269
        pending = self._find_tails()
347
341
        """Compute the merge sorted graph output."""
348
342
        from breezy import tsort
349
343
        as_parent_map = dict((node.key, node.parent_keys)
350
 
                             for node in viewvalues(self._nodes)
 
344
                             for node in self._nodes.values()
351
345
                             if node.parent_keys is not None)
352
346
        # We intentionally always generate revnos and never force the
353
347
        # mainline_revisions