Merge lp:~jelmer/brz/git-ref-fix into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: 7616
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/git-ref-fix
Merge into: lp:brz
Diff against target: 50 lines (+7/-6)
2 files modified
breezy/git/branch.py (+3/-1)
breezy/git/remote.py (+4/-5)
To merge this branch: bzr merge lp:~jelmer/brz/git-ref-fix
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+429012@code.launchpad.net

Commit message

Improve handling of refs for remote git branches.

Description of the change

Improve handling of refs for remote git branches.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/git/branch.py'
2--- breezy/git/branch.py 2022-01-21 22:24:39 +0000
3+++ breezy/git/branch.py 2022-08-26 18:20:20 +0000
4@@ -451,13 +451,15 @@
5 def user_transport(self):
6 return self._user_transport
7
8- def __init__(self, controldir, repository, ref, format):
9+ def __init__(self, controldir, repository, ref: bytes, format):
10 self.repository = repository
11 self._format = format
12 self.controldir = controldir
13 self._lock_mode = None
14 self._lock_count = 0
15 super(GitBranch, self).__init__(repository.get_mapping())
16+ if not isinstance(ref, bytes):
17+ raise TypeError("ref is invalid: %r" % ref)
18 self.ref = ref
19 self._head = None
20 self._user_transport = controldir.user_transport.clone('.')
21
22=== modified file 'breezy/git/remote.py'
23--- breezy/git/remote.py 2022-07-15 17:59:59 +0000
24+++ breezy/git/remote.py 2022-08-26 18:20:20 +0000
25@@ -1037,9 +1037,9 @@
26
27 class RemoteGitBranch(GitBranch):
28
29- def __init__(self, controldir, repository, name):
30+ def __init__(self, controldir, repository, ref):
31 self._sha = None
32- super(RemoteGitBranch, self).__init__(controldir, repository, name,
33+ super(RemoteGitBranch, self).__init__(controldir, repository, ref,
34 RemoteGitBranchFormat())
35
36 def last_revision_info(self):
37@@ -1064,11 +1064,10 @@
38 if self._sha is not None:
39 return self._sha
40 refs = self.controldir.get_refs_container()
41- name = branch_name_to_ref(self.name)
42 try:
43- self._sha = refs[name]
44+ self._sha = refs[self.ref]
45 except KeyError:
46- raise NoSuchRef(name, self.repository.user_url, refs)
47+ raise NoSuchRef(self.ref, self.repository.user_url, refs)
48 return self._sha
49
50 def _synchronize_history(self, destination, revision_id):

Subscribers

People subscribed via source and target branches