/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/bzr/versionedfile.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:
16
16
 
17
17
"""Versioned text file storage api."""
18
18
 
19
 
from __future__ import absolute_import
20
 
 
21
19
from copy import copy
 
20
from io import BytesIO
22
21
import itertools
23
22
import os
24
23
import struct
46
45
    errors,
47
46
    )
48
47
from ..registry import Registry
49
 
from ..sixish import (
50
 
    BytesIO,
51
 
    viewitems,
52
 
    viewvalues,
53
 
    zip,
54
 
    )
55
48
from ..textmerge import TextMerge
56
49
 
57
50
 
327
320
        refcounts = {}
328
321
        setdefault = refcounts.setdefault
329
322
        just_parents = set()
330
 
        for child_key, parent_keys in viewitems(parent_map):
 
323
        for child_key, parent_keys in parent_map.items():
331
324
            if not parent_keys:
332
325
                # parent_keys may be None if a given VersionedFile claims to
333
326
                # not support graph operations.
1179
1172
            this_parent_map = self.get_parent_map(pending)
1180
1173
            parent_map.update(this_parent_map)
1181
1174
            pending = set(itertools.chain.from_iterable(
1182
 
                viewvalues(this_parent_map)))
 
1175
                this_parent_map.values()))
1183
1176
            pending.difference_update(parent_map)
1184
1177
        kg = _mod_graph.KnownGraph(parent_map)
1185
1178
        return kg
1393
1386
        """
1394
1387
        prefixes = self._partition_keys(keys)
1395
1388
        result = {}
1396
 
        for prefix, suffixes in viewitems(prefixes):
 
1389
        for prefix, suffixes in prefixes.items():
1397
1390
            path = self._mapper.map(prefix)
1398
1391
            vf = self._get_vf(path)
1399
1392
            parent_map = vf.get_parent_map(suffixes)
1400
 
            for key, parents in viewitems(parent_map):
 
1393
            for key, parents in parent_map.items():
1401
1394
                result[prefix + (key,)] = tuple(
1402
1395
                    prefix + (parent,) for parent in parents)
1403
1396
        return result
1449
1442
    def _iter_keys_vf(self, keys):
1450
1443
        prefixes = self._partition_keys(keys)
1451
1444
        sha1s = {}
1452
 
        for prefix, suffixes in viewitems(prefixes):
 
1445
        for prefix, suffixes in prefixes.items():
1453
1446
            path = self._mapper.map(prefix)
1454
1447
            vf = self._get_vf(path)
1455
1448
            yield prefix, suffixes, vf
1459
1452
        sha1s = {}
1460
1453
        for prefix, suffixes, vf in self._iter_keys_vf(keys):
1461
1454
            vf_sha1s = vf.get_sha1s(suffixes)
1462
 
            for suffix, sha1 in viewitems(vf_sha1s):
 
1455
            for suffix, sha1 in vf_sha1s.items():
1463
1456
                sha1s[prefix + (suffix,)] = sha1
1464
1457
        return sha1s
1465
1458
 
1659
1652
        result.update(
1660
1653
            _mod_graph.StackedParentsProvider(
1661
1654
                self._providers).get_parent_map(keys))
1662
 
        for key, parents in viewitems(result):
 
1655
        for key, parents in result.items():
1663
1656
            if parents == ():
1664
1657
                result[key] = (revision.NULL_REVISION,)
1665
1658
        return result
1838
1831
 
1839
1832
    def get_parent_map(self, keys):
1840
1833
        """See VersionedFiles.get_parent_map."""
1841
 
        parent_view = viewitems(self._get_parent_map(k for (k,) in keys))
 
1834
        parent_view = self._get_parent_map(k for (k,) in keys).items()
1842
1835
        return dict(((k,), tuple((p,) for p in v)) for k, v in parent_view)
1843
1836
 
1844
1837
    def get_sha1s(self, keys):
1995
1988
    # gc-optimal ordering is approximately reverse topological,
1996
1989
    # properly grouped by file-id.
1997
1990
    per_prefix_map = {}
1998
 
    for item in viewitems(parent_map):
 
1991
    for item in parent_map.items():
1999
1992
        key = item[0]
2000
1993
        if isinstance(key, bytes) or len(key) == 1:
2001
1994
            prefix = b''
2064
2057
            self._satisfy_refs_for_key(key)
2065
2058
 
2066
2059
    def get_referrers(self):
2067
 
        return set(itertools.chain.from_iterable(viewvalues(self.refs)))
 
2060
        return set(itertools.chain.from_iterable(self.refs.values()))