/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/repository.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2020-02-03 23:21:15 UTC
  • mfrom: (7290.42.6 paramiko-compat)
  • Revision ID: breezy.the.bot@gmail.com-20200203232115-g7k11bhsfeiqcprv
Fix compatibility with newer versions of paramiko, which break on noise before keys in pem files.

Merged from https://code.launchpad.net/~jelmer/brz/paramiko-compat/+merge/378480

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
from .decorators import only_raises
41
41
from .inter import InterObject
42
42
from .lock import _RelockDebugMixin, LogicalLockResult
 
43
from .sixish import (
 
44
    text_type,
 
45
    viewitems,
 
46
    )
43
47
from .trace import (
44
48
    log_exception_quietly, note, mutter, mutter_callsite, warning)
45
49
 
106
110
 
107
111
        if committer is None:
108
112
            self._committer = self._config_stack.get('email')
109
 
        elif not isinstance(committer, str):
 
113
        elif not isinstance(committer, text_type):
110
114
            self._committer = committer.decode()  # throw if non-ascii
111
115
        else:
112
116
            self._committer = committer
148
152
            raise ValueError('Invalid value for %s: %r' % (context, text))
149
153
 
150
154
    def _validate_revprops(self, revprops):
151
 
        for key, value in revprops.items():
 
155
        for key, value in viewitems(revprops):
152
156
            # We know that the XML serializers do not round trip '\r'
153
157
            # correctly, so refuse to accept them
154
 
            if not isinstance(value, str):
 
158
            if not isinstance(value, (text_type, str)):
155
159
                raise ValueError('revision property (%s) is not a valid'
156
160
                                 ' (unicode) string: %r' % (key, value))
157
161
            # TODO(jelmer): Make this repository-format specific
1048
1052
            else:
1049
1053
                query_keys.append((revision_id,))
1050
1054
        vf = self.revisions.without_fallbacks()
1051
 
        for (revision_id,), parent_keys in (
1052
 
                vf.get_parent_map(query_keys).items()):
 
1055
        for (revision_id,), parent_keys in viewitems(
 
1056
                vf.get_parent_map(query_keys)):
1053
1057
            if parent_keys:
1054
1058
                result[revision_id] = tuple([parent_revid
1055
1059
                                             for (parent_revid,) in parent_keys])
1180
1184
        # weave repositories refuse to store revisionids that are non-ascii.
1181
1185
        if revision_id is not None:
1182
1186
            # weaves require ascii revision ids.
1183
 
            if isinstance(revision_id, str):
 
1187
            if isinstance(revision_id, text_type):
1184
1188
                try:
1185
1189
                    revision_id.encode('ascii')
1186
1190
                except UnicodeEncodeError:
1616
1620
    # Filter ghosts, and null:
1617
1621
    if _mod_revision.NULL_REVISION in revision_graph:
1618
1622
        del revision_graph[_mod_revision.NULL_REVISION]
1619
 
    for key, parents in revision_graph.items():
 
1623
    for key, parents in viewitems(revision_graph):
1620
1624
        revision_graph[key] = tuple(parent for parent in parents if parent
1621
1625
                                    in revision_graph)
1622
1626
    return revision_graph