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

Move refs code to separate module.

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
    NoPushSupport,
51
51
    NoSuchRef,
52
52
    )
 
53
from bzrlib.plugins.git.refs import (
 
54
    ref_to_branch_name,
 
55
    extract_tags,
 
56
    )
53
57
 
54
58
from bzrlib.foreign import ForeignBranch
55
59
 
56
60
 
57
 
def extract_tags(refs):
58
 
    """Extract the tags from a refs dictionary.
59
 
 
60
 
    :param refs: Refs to extract the tags from.
61
 
    :return: Dictionary mapping tag names to SHA1s.
62
 
    """
63
 
    ret = {}
64
 
    for k,v in refs.iteritems():
65
 
        if k.startswith("refs/tags/") and not k.endswith("^{}"):
66
 
            v = refs.get(k+"^{}", v)
67
 
            ret[k[len("refs/tags/"):]] = v
68
 
    return ret
69
 
 
70
 
 
71
 
def branch_name_to_ref(name, default=None):
72
 
    """Map a branch name to a ref.
73
 
 
74
 
    :param name: Branch name
75
 
    :return: ref string
76
 
    """
77
 
    if name is None:
78
 
        return default
79
 
    if name == "HEAD":
80
 
        return "HEAD"
81
 
    if not name.startswith("refs/"):
82
 
        return "refs/heads/%s" % name
83
 
    else:
84
 
        return name
85
 
 
86
 
 
87
 
def ref_to_branch_name(ref):
88
 
    """Map a ref to a branch name
89
 
 
90
 
    :param ref: Ref
91
 
    :return: A branch name
92
 
    """
93
 
    if ref == "HEAD":
94
 
        return "HEAD"
95
 
    if ref.startswith("refs/heads/"):
96
 
        return ref[len("refs/heads/"):]
97
 
    raise ValueError("unable to map ref %s back to branch name")
98
 
 
99
 
 
100
61
class GitPullResult(branch.PullResult):
101
62
 
102
63
    def _lookup_revno(self, revid):