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

Support user.signingkey configuration variable in .git/config.

Merged from https://code.launchpad.net/~jelmer/brz/local-git-key/+merge/381000

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""InterRepository operations."""
18
18
 
 
19
from __future__ import absolute_import
 
20
 
19
21
from io import BytesIO
20
22
import itertools
21
23
 
50
52
from ..revision import (
51
53
    NULL_REVISION,
52
54
    )
 
55
from ..sixish import (
 
56
    viewitems,
 
57
    viewvalues,
 
58
    )
53
59
from .. import (
54
60
    config,
55
61
    trace,
223
229
                        new_stop_revids.append(revid)
224
230
                stop_revids = set()
225
231
                parent_map = graph.get_parent_map(new_stop_revids)
226
 
                for parent_revids in parent_map.values():
 
232
                for parent_revids in viewvalues(parent_map):
227
233
                    stop_revids.update(parent_revids)
228
234
                pb.update("determining revisions to fetch", len(missing))
229
235
        return graph.iter_topo_order(missing)
266
272
                 for (git_sha, bzr_revid) in new_refs.values()
267
273
                 if git_sha is None or not git_sha.startswith(SYMREF)],
268
274
                lossy=lossy)
269
 
            for name, (gitid, revid) in new_refs.items():
 
275
            for name, (gitid, revid) in viewitems(new_refs):
270
276
                if gitid is None:
271
277
                    try:
272
278
                        gitid = revidmap[revid][0]
356
362
        def git_update_refs(old_refs):
357
363
            ret = {}
358
364
            self.old_refs = {
359
 
                k: (v, None) for (k, v) in old_refs.items()}
 
365
                k: (v, None) for (k, v) in viewitems(old_refs)}
360
366
            new_refs = update_refs(self.old_refs)
361
 
            for name, (gitid, revid) in new_refs.items():
 
367
            for name, (gitid, revid) in viewitems(new_refs):
362
368
                if gitid is None:
363
369
                    git_sha = self.source_store._lookup_revision_sha1(revid)
364
370
                    gitid = unpeel_map.re_unpeel_tag(
409
415
 
410
416
        def determine_wants(refs):
411
417
            unpeel_lookup = {}
412
 
            for k, v in refs.items():
 
418
            for k, v in viewitems(refs):
413
419
                if k.endswith(ANNOTATED_TAG_SUFFIX):
414
420
                    unpeel_lookup[v] = refs[k[:-len(ANNOTATED_TAG_SUFFIX)]]
415
421
            potential = set([unpeel_lookup.get(w, w) for w in wants])
416
422
            if include_tags:
417
 
                for k, sha in refs.items():
 
423
                for k, sha in viewitems(refs):
418
424
                    if k.endswith(ANNOTATED_TAG_SUFFIX):
419
425
                        continue
420
426
                    try:
457
463
            if if_present_ids is not None:
458
464
                todo.update(if_present_ids)
459
465
        result_set = todo.difference(self.target.all_revision_ids())
460
 
        result_parents = set(itertools.chain.from_iterable(
461
 
            self.source.get_graph().get_parent_map(result_set).values()))
 
466
        result_parents = set(itertools.chain.from_iterable(viewvalues(
 
467
            self.source.get_graph().get_parent_map(result_set))))
462
468
        included_keys = result_set.intersection(result_parents)
463
469
        start_keys = result_set.difference(included_keys)
464
470
        exclude_keys = result_parents.difference(result_set)
483
489
 
484
490
    def determine_wants_all(self, refs):
485
491
        potential = set()
486
 
        for k, v in refs.items():
 
492
        for k, v in viewitems(refs):
487
493
            # For non-git target repositories, only worry about peeled
488
494
            if v == ZERO_SHA:
489
495
                continue
557
563
        all_revs = self.target.all_revision_ids()
558
564
        parent_map = self.target.get_parent_map(all_revs)
559
565
        all_parents = set()
560
 
        for values in parent_map.values():
 
566
        for values in viewvalues(parent_map):
561
567
            all_parents.update(values)
562
568
        return set(all_revs) - all_parents
563
569
 
641
647
 
642
648
        def determine_wants(heads):
643
649
            old_refs = dict([(k, (v, None))
644
 
                             for (k, v) in heads.as_dict().items()])
 
650
                             for (k, v) in viewitems(heads.as_dict())])
645
651
            new_refs = update_refs(old_refs)
646
652
            ref_changes.update(new_refs)
647
 
            return [sha1 for (sha1, bzr_revid) in new_refs.values()]
 
653
            return [sha1 for (sha1, bzr_revid) in viewvalues(new_refs)]
648
654
        self.fetch_objects(determine_wants, lossy=lossy)
649
 
        for k, (git_sha, bzr_revid) in ref_changes.items():
 
655
        for k, (git_sha, bzr_revid) in viewitems(ref_changes):
650
656
            self.target._git.refs[k] = git_sha
651
657
        new_refs = self.target.controldir.get_refs_container()
652
658
        return None, old_refs, new_refs
700
706
    def get_determine_wants_branches(self, branches, include_tags=False):
701
707
        def determine_wants(refs):
702
708
            ret = []
703
 
            for name, value in refs.items():
 
709
            for name, value in viewitems(refs):
704
710
                if value == ZERO_SHA:
705
711
                    continue
706
712