Merge lp:~jelmer/brz/update-refs into lp:brz/3.1

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/update-refs
Merge into: lp:brz/3.1
Diff against target: 62 lines (+23/-10)
2 files modified
breezy/git/branch.py (+20/-7)
breezy/git/interrepo.py (+3/-3)
To merge this branch: bzr merge lp:~jelmer/brz/update-refs
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+396796@code.launchpad.net

Commit message

Fix handling of some git fetches.

Description of the change

Fix handling of some git fetches.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve
Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :

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 2020-11-21 23:31:28 +0000
3+++ breezy/git/branch.py 2021-01-23 02:57:05 +0000
4@@ -1455,13 +1455,26 @@
5 for k, v in viewitems(self.source.tags.get_tag_dict()):
6 ret.append((None, v))
7 ret.append((None, stop_revision))
8- try:
9- revidmap = self.interrepo.fetch_revs(ret, lossy=lossy, limit=limit)
10- except NoPushSupport:
11- raise errors.NoRoundtrippingSupport(self.source, self.target)
12- return _mod_repository.FetchResult(revidmap={
13- old_revid: new_revid
14- for (old_revid, (new_sha, new_revid)) in revidmap.items()})
15+ if getattr(self.interrepo, 'fetch_revs', None):
16+ try:
17+ revidmap = self.interrepo.fetch_revs(ret, lossy=lossy, limit=limit)
18+ except NoPushSupport:
19+ raise errors.NoRoundtrippingSupport(self.source, self.target)
20+ return _mod_repository.FetchResult(revidmap={
21+ old_revid: new_revid
22+ for (old_revid, (new_sha, new_revid)) in revidmap.items()})
23+ else:
24+ def determine_wants(refs):
25+ wants = []
26+ for git_sha, revid in ret:
27+ if git_sha is None:
28+ git_sha, mapping = self.target.lookup_bzr_revision_id(revid)
29+ wants.append(git_sha)
30+ return wants
31+
32+ self.interrepo.fetch_objects(
33+ determine_wants, lossy=lossy, limit=limit)
34+ return _mod_repository.FetchResult()
35
36 def pull(self, overwrite=False, stop_revision=None, local=False,
37 possible_transports=None, run_hooks=True, _stop_revno=None,
38
39=== modified file 'breezy/git/interrepo.py'
40--- breezy/git/interrepo.py 2020-11-21 23:31:28 +0000
41+++ breezy/git/interrepo.py 2021-01-23 02:57:05 +0000
42@@ -655,7 +655,7 @@
43
44 def determine_wants(heads):
45 old_refs = dict([(k, (v, None))
46- for (k, v) in viewitems(heads.as_dict())])
47+ for (k, v) in viewitems(heads)])
48 new_refs = update_refs(old_refs)
49 ref_changes.update(new_refs)
50 return [sha1 for (sha1, bzr_revid) in viewvalues(new_refs)]
51@@ -807,9 +807,9 @@
52 def git_update_refs(old_refs):
53 ret = {}
54 self.old_refs = {
55- k: (v, None) for (k, v) in viewitems(old_refs)}
56+ k: (v, None) for (k, v) in old_refs.items()}
57 new_refs = update_refs(self.old_refs)
58- for name, (gitid, revid) in viewitems(new_refs):
59+ for name, (gitid, revid) in new_refs.items():
60 if gitid is None:
61 gitid = self.source_store._lookup_revision_sha1(revid)
62 if not overwrite:

Subscribers

People subscribed via source and target branches