Merge lp:~jelmer/debian/sid/bzr-git/new-upstream into lp:~debian-bazaar/debian/sid/bzr-git/unstable

Proposed by Jelmer Vernooij
Status: Merged
Merged at revision: 181
Proposed branch: lp:~jelmer/debian/sid/bzr-git/new-upstream
Merge into: lp:~debian-bazaar/debian/sid/bzr-git/unstable
Diff against target: 175 lines (+48/-37)
5 files modified
debian/changelog (+3/-2)
debian/control (+2/-2)
info.py (+1/-1)
tests/test_blackbox.py (+2/-1)
transportgit.py (+40/-31)
To merge this branch: bzr merge lp:~jelmer/debian/sid/bzr-git/new-upstream
Reviewer Review Type Date Requested Status
Debian/Ubuntu Bazaar Maintainers Pending
Review via email: mp+362928@code.launchpad.net

Description of the change

Merge new upstream release 0.6.13+bzr1650

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2019-01-05 01:07:21 +0000
3+++ debian/changelog 2019-02-08 17:07:26 +0000
4@@ -1,8 +1,9 @@
5-bzr-git (0.6.13+bzr1649-4) UNRELEASED; urgency=medium
6+bzr-git (0.6.13+bzr1650-1) UNRELEASED; urgency=medium
7
8 * autopkgtest: Allow output on stderr.
9+ * New upstream snapshot.
10
11- -- Jelmer Vernooij <jelmer@debian.org> Sat, 05 Jan 2019 01:07:07 +0000
12+ -- Jelmer Vernooij <jelmer@debian.org> Fri, 08 Feb 2019 17:04:52 +0000
13
14 bzr-git (0.6.13+bzr1649-3) unstable; urgency=medium
15
16
17=== modified file 'debian/control'
18--- debian/control 2018-09-20 17:34:05 +0000
19+++ debian/control 2019-02-08 17:07:26 +0000
20@@ -4,7 +4,7 @@
21 Maintainer: Debian Bazaar Maintainers <pkg-bazaar-maint@lists.alioth.debian.org>
22 Uploaders: Andrew Starr-Bochicchio <asb@debian.org>, Jelmer Vernooij <jelmer@debian.org>
23 Build-Depends: debhelper (>= 9), python (>= 2.6.6-3), python-tdb
24-Build-Depends-Indep: bzr (<< 2.8.0), bzr (>= 2.5~), bzr-fastimport (>= 0.12.0+bzr351), python-bzrlib.tests | bzr (<= 2.4.0~beta1-2), python-dulwich (>= 0.18.2~), python-fastimport, python-subunit, python-testtools (>= 0.9.2), python-unittest2
25+Build-Depends-Indep: bzr (<< 2.8.0), bzr (>= 2.5~), bzr-fastimport (>= 0.12.0+bzr351), python-bzrlib.tests | bzr (<= 2.4.0~beta1-2), python-dulwich (>= 0.19.11~), python-fastimport, python-subunit, python-testtools (>= 0.9.2), python-unittest2
26 Standards-Version: 4.1.1
27 Homepage: http://bazaar-vcs.org/BzrForeignBranches/Git
28 Vcs-Bzr: https://code.launchpad.net/~debian-bazaar/debian/sid/bzr-git/unstable
29@@ -12,7 +12,7 @@
30
31 Package: bzr-git
32 Architecture: all
33-Depends: bzr (<< 2.8.0), bzr (>= 2.5~), python-dulwich (>= 0.18.2~), ${misc:Depends}, ${python:Depends}
34+Depends: bzr (<< 2.8.0), bzr (>= 2.5~), python-dulwich (>= 0.19.11~), ${misc:Depends}, ${python:Depends}
35 Suggests: bzr-fastimport
36 Recommends: python-tdb
37 Enhances: bzr, git, loggerhead
38
39=== modified file 'info.py'
40--- info.py 2017-10-05 22:22:50 +0000
41+++ info.py 2019-02-08 17:07:26 +0000
42@@ -2,7 +2,7 @@
43
44 bzr_plugin_name = "git"
45
46-dulwich_minimum_version = (0, 18, 3)
47+dulwich_minimum_version = (0, 19, 11)
48
49 # versions ending in 'exp' mean experimental mappings
50 # versions ending in 'dev' mean development version
51
52=== modified file 'tests/test_blackbox.py'
53--- tests/test_blackbox.py 2017-10-01 18:04:18 +0000
54+++ tests/test_blackbox.py 2019-02-08 17:07:26 +0000
55@@ -260,7 +260,8 @@
56 r = GitRepo.init("gitr", mkdir=True)
57 self.build_tree_contents([("gitr/foo", "hello from git")])
58 r.stage("foo")
59- r.do_commit("message", committer="Somebody <user@example.com>")
60+ r.do_commit("message", committer="Somebody <user@example.com>",
61+ author="Somebody <user@example.com>")
62 self.run_bzr(["branch", "gitr", "bzrb"])
63 self.build_tree_contents([("bzrb/foo", "hello from bzr")])
64 self.run_bzr(["commit", "-m", "msg", "bzrb"])
65
66=== modified file 'transportgit.py'
67--- transportgit.py 2017-10-05 22:18:21 +0000
68+++ transportgit.py 2019-02-08 17:07:26 +0000
69@@ -34,6 +34,7 @@
70 from dulwich.object_store import (
71 PackBasedObjectStore,
72 PACKDIR,
73+ read_packs_file,
74 )
75 from dulwich.pack import (
76 MemoryPackIndex,
77@@ -448,16 +449,41 @@
78 finally:
79 f.close()
80
81- @property
82- def packs(self):
83- # FIXME: Never invalidates.
84- if not self._pack_cache:
85- self._update_pack_cache()
86- return self._pack_cache.values()
87-
88 def _update_pack_cache(self):
89- for pack in self._load_packs():
90- self._pack_cache[pack._basename] = pack
91+ pack_files = set()
92+ pack_dir_contents = self._pack_names()
93+ for name in pack_dir_contents:
94+ if name.startswith("pack-") and name.endswith(".pack"):
95+ # verify that idx exists first (otherwise the pack was not yet
96+ # fully written)
97+ idx_name = os.path.splitext(name)[0] + ".idx"
98+ if idx_name in pack_dir_contents:
99+ pack_files.add(os.path.splitext(name)[0])
100+
101+ new_packs = []
102+ for basename in pack_files:
103+ pack_name = basename + ".pack"
104+ if basename not in self._pack_cache:
105+ try:
106+ size = self.pack_transport.stat(pack_name).st_size
107+ except TransportNotPossible:
108+ f = self.pack_transport.get(pack_name)
109+ pd = PackData(pack_name, f)
110+ else:
111+ pd = PackData(
112+ pack_name, self.pack_transport.get(pack_name),
113+ size=size)
114+ idxname = basename + ".idx"
115+ idx = load_pack_index_file(
116+ idxname, self.pack_transport.get(idxname))
117+ pack = Pack.from_objects(pd, idx)
118+ pack._basename = basename
119+ self._pack_cache[basename] = pack
120+ new_packs.append(pack)
121+ # Remove disappeared pack files
122+ for f in set(self._pack_cache) - pack_files:
123+ self._pack_cache.pop(f).close()
124+ return new_packs
125
126 def _pack_names(self):
127 try:
128@@ -475,27 +501,6 @@
129 ret.append(name)
130 return ret
131
132- def _load_packs(self):
133- ret = []
134- for name in self._pack_names():
135- if name.startswith("pack-") and name.endswith(".pack"):
136- try:
137- size = self.pack_transport.stat(name).st_size
138- except TransportNotPossible:
139- # FIXME: This reads the whole pack file at once
140- f = self.pack_transport.get(name)
141- contents = f.read()
142- pd = PackData(name, StringIO(contents), size=len(contents))
143- else:
144- pd = PackData(name, self.pack_transport.get(name),
145- size=size)
146- idxname = name.replace(".pack", ".idx")
147- idx = load_pack_index_file(idxname, self.pack_transport.get(idxname))
148- pack = Pack.from_objects(pd, idx)
149- pack._basename = idxname[:-4]
150- ret.append(pack)
151- return ret
152-
153 def _iter_loose_objects(self):
154 for base in self.transport.list_dir('.'):
155 if len(base) != 2:
156@@ -513,6 +518,10 @@
157 def _remove_pack(self, pack):
158 self.pack_transport.delete(pack.data.filename)
159 self.pack_transport.delete(pack.index.filename)
160+ try:
161+ del self._pack_cache[os.path.basename(pack._basename)]
162+ except KeyError:
163+ pass
164
165 def _get_loose_object(self, sha):
166 path = '%s/%s' % self._split_loose_object(sha)
167@@ -560,7 +569,7 @@
168 idx = load_pack_index_file(basename+".idx", idxfile)
169 final_pack = Pack.from_objects(p, idx)
170 final_pack._basename = basename
171- self._add_known_pack(basename, final_pack)
172+ self._add_cached_pack(basename, final_pack)
173 return final_pack
174
175 def add_thin_pack(self):

Subscribers

People subscribed via source and target branches