/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/git/branch.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:
19
19
 
20
20
from __future__ import absolute_import
21
21
 
22
 
import contextlib
23
22
from io import BytesIO
24
23
from collections import defaultdict
25
24
 
36
35
 
37
36
from .. import (
38
37
    branch,
 
38
    cleanup,
39
39
    config,
40
40
    controldir,
41
41
    errors,
51
51
from ..revision import (
52
52
    NULL_REVISION,
53
53
    )
 
54
from ..sixish import (
 
55
    text_type,
 
56
    viewitems,
 
57
    )
54
58
from ..trace import (
55
59
    is_quiet,
56
60
    mutter,
237
241
                master = None
238
242
            else:
239
243
                master = to_tags.branch.get_master_branch()
240
 
            with contextlib.ExitStack() as es:
 
244
            with cleanup.ExitStack() as es:
241
245
                if master is not None:
242
246
                    es.enter_context(master.lock_write())
243
247
                updates, conflicts = self._merge_to_non_git(
273
277
 
274
278
    def _set_tag_dict(self, to_dict):
275
279
        extra = set(self.refs.allkeys())
276
 
        for k, revid in to_dict.items():
 
280
        for k, revid in viewitems(to_dict):
277
281
            name = tag_name_to_ref(k)
278
282
            if name in extra:
279
283
                extra.remove(name)
794
798
        :return: iterator over (ref_name, tag_name, peeled_sha1, unpeeled_sha1)
795
799
        """
796
800
        refs = self.repository.controldir.get_refs_container()
797
 
        for ref_name, unpeeled in refs.as_dict().items():
 
801
        for ref_name, unpeeled in viewitems(refs.as_dict()):
798
802
            try:
799
803
                tag_name = ref_to_tag_name(ref_name)
800
804
            except (ValueError, UnicodeDecodeError):
802
806
            peeled = refs.get_peeled(ref_name)
803
807
            if peeled is None:
804
808
                peeled = unpeeled
805
 
            if not isinstance(tag_name, str):
 
809
            if not isinstance(tag_name, text_type):
806
810
                raise TypeError(tag_name)
807
811
            yield (ref_name, tag_name, peeled, unpeeled)
808
812
 
1045
1049
        if local and not bound_location:
1046
1050
            raise errors.LocalRequiresBoundBranch()
1047
1051
        source_is_master = False
1048
 
        with contextlib.ExitStack() as es:
 
1052
        with cleanup.ExitStack() as es:
1049
1053
            es.enter_context(self.source.lock_read())
1050
1054
            if bound_location:
1051
1055
                # bound_location comes from a config file, some care has to be
1133
1137
                    raise errors.DivergedBranches(self.source, self.target)
1134
1138
            refs = {self.target.ref: new_ref}
1135
1139
            result.new_revid = stop_revision
1136
 
            for name, sha in (
1137
 
                    self.source.repository._git.refs.as_dict(b"refs/tags").items()):
 
1140
            for name, sha in viewitems(
 
1141
                    self.source.repository._git.refs.as_dict(b"refs/tags")):
1138
1142
                if sha not in self.source.repository._git:
1139
1143
                    trace.mutter('Ignoring missing SHA: %s', sha)
1140
1144
                    continue
1296
1300
        if fetch_tags is None:
1297
1301
            c = self.source.get_config_stack()
1298
1302
            fetch_tags = c.get('branch.fetch_tags')
1299
 
        for name, revid in self.source.tags.get_tag_dict().items():
 
1303
        for name, revid in viewitems(self.source.tags.get_tag_dict()):
1300
1304
            if self.source.repository.has_revision(revid):
1301
1305
                ref = tag_name_to_ref(name)
1302
1306
                if not check_ref_format(ref):
1333
1337
            # updated that hasn't actually been updated.
1334
1338
            return False
1335
1339
        # FIXME: Check for diverged branches
1336
 
        for ref, (git_sha, revid) in new_refs.items():
 
1340
        for ref, (git_sha, revid) in viewitems(new_refs):
1337
1341
            if ref_equals(ret, ref, git_sha, revid):
1338
1342
                # Already up to date
1339
1343
                if git_sha is None:
1370
1374
            stop_revision = self.source.last_revision()
1371
1375
        ret = []
1372
1376
        if fetch_tags:
1373
 
            for k, v in self.source.tags.get_tag_dict().items():
 
1377
            for k, v in viewitems(self.source.tags.get_tag_dict()):
1374
1378
                ret.append((None, v))
1375
1379
        ret.append((None, stop_revision))
1376
1380
        try: