/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

Add a tag_selector argument to push/pull/sprout functions.

Merged from https://code.launchpad.net/~jelmer/brz/tag-selector/+merge/379435

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
    )
82
82
from .refs import (
83
83
    is_tag,
 
84
    ref_to_tag_name,
84
85
    )
85
86
from .repository import (
86
87
    GitRepository,
409
410
    def _target_has_shas(self, shas):
410
411
        raise NotImplementedError(self._target_has_shas)
411
412
 
412
 
    def get_determine_wants_heads(self, wants, include_tags=False):
 
413
    def get_determine_wants_heads(self, wants, include_tags=False, tag_selector=None):
413
414
        wants = set(wants)
414
415
 
415
416
        def determine_wants(refs):
422
423
                for k, sha in viewitems(refs):
423
424
                    if k.endswith(ANNOTATED_TAG_SUFFIX):
424
425
                        continue
425
 
                    if not is_tag(k):
 
426
                    try:
 
427
                        tag_name = ref_to_tag_name(k)
 
428
                    except ValueError:
 
429
                        continue
 
430
                    if tag_selector and not tag_selector(tag_name):
426
431
                        continue
427
432
                    if sha == ZERO_SHA:
428
433
                        continue
508
513
        """
509
514
        raise NotImplementedError(self.fetch_objects)
510
515
 
511
 
    def get_determine_wants_revids(self, revids, include_tags=False):
 
516
    def get_determine_wants_revids(self, revids, include_tags=False, tag_selector=None):
512
517
        wants = set()
513
518
        for revid in set(revids):
514
519
            if self.target.has_revision(revid):
515
520
                continue
516
521
            git_sha, mapping = self.source.lookup_bzr_revision_id(revid)
517
522
            wants.add(git_sha)
518
 
        return self.get_determine_wants_heads(wants, include_tags=include_tags)
 
523
        return self.get_determine_wants_heads(
 
524
            wants, include_tags=include_tags, tag_selector=tag_selector)
519
525
 
520
526
    def fetch(self, revision_id=None, find_ghosts=False,
521
527
              mapping=None, fetch_spec=None, include_tags=False, lossy=False):
688
694
        result.refs = wants_recorder.remote_refs
689
695
        return result
690
696
 
691
 
    def get_determine_wants_revids(self, revids, include_tags=False):
 
697
    def get_determine_wants_revids(self, revids, include_tags=False, tag_selector=None):
692
698
        wants = set()
693
699
        for revid in set(revids):
694
700
            if revid == NULL_REVISION:
695
701
                continue
696
702
            git_sha, mapping = self.source.lookup_bzr_revision_id(revid)
697
703
            wants.add(git_sha)
698
 
        return self.get_determine_wants_heads(wants, include_tags=include_tags)
 
704
        return self.get_determine_wants_heads(wants, include_tags=include_tags, tag_selector=tag_selector)
699
705
 
700
706
    def get_determine_wants_branches(self, branches, include_tags=False):
701
707
        def determine_wants(refs):