Merge lp:~jelmer/brz/auto-rename-fix into lp:brz
- auto-rename-fix
- Merge into trunk
Proposed by
Jelmer Vernooij
Status: | Merged |
---|---|
Merged at revision: | 6809 |
Proposed branch: | lp:~jelmer/brz/auto-rename-fix |
Merge into: | lp:brz |
Diff against target: |
3847 lines (+708/-763) 48 files modified
breezy/rename_map.py (+8/-1) breezy/tests/test_groupcompress.py (+271/-292) breezy/tests/test_rename_map.py (+15/-0) doc/developers/HACKING.txt (+63/-109) doc/developers/branding.txt (+14/-0) doc/developers/bug-handling.txt (+38/-39) doc/developers/case-insensitive-file-systems.txt (+1/-1) doc/developers/check.txt (+1/-1) doc/developers/code-review.txt (+7/-7) doc/developers/code-style.txt (+17/-17) doc/developers/colocated-branches.txt (+26/-26) doc/developers/config-rationale.txt (+7/-7) doc/developers/content-filtering.txt (+3/-3) doc/developers/contribution-quickstart.txt (+2/-2) doc/developers/cycle.txt (+9/-10) doc/developers/development-repo.txt (+7/-7) doc/developers/documenting-changes.txt (+4/-4) doc/developers/ec2.txt (+4/-4) doc/developers/implementation-notes.txt (+1/-1) doc/developers/index-plain.txt (+22/-25) doc/developers/index.txt (+6/-7) doc/developers/indices.txt (+3/-3) doc/developers/integration.txt (+25/-25) doc/developers/inventory.txt (+6/-6) doc/developers/last-modified.txt (+1/-1) doc/developers/lca_tree_merging.txt (+1/-1) doc/developers/network-protocol.txt (+1/-1) doc/developers/overview.txt (+12/-12) doc/developers/packrepo.txt (+3/-3) doc/developers/plans/index.txt (+0/-2) doc/developers/plans/performance/commit.txt (+5/-5) doc/developers/plans/performance/directory-fingerprints.txt (+1/-1) doc/developers/plans/performance/incremental-push-pull.txt (+1/-1) doc/developers/plans/performance/roadmap.txt (+1/-1) doc/developers/plugin-api.txt (+46/-46) doc/developers/ppa.txt (+6/-6) doc/developers/principles.txt (+9/-9) doc/developers/profiling.txt (+4/-4) doc/developers/releasing.txt (+13/-13) doc/developers/repository-stream.txt (+1/-1) doc/developers/repository.txt (+3/-3) doc/developers/revision-properties.txt (+2/-2) doc/developers/specifications.txt (+7/-2) doc/developers/transports.txt (+12/-12) doc/developers/ui.txt (+15/-15) doc/developers/win32_build_setup.txt (+1/-1) doc/developers/xdg_config_spec.txt (+0/-24) doc/en/release-notes/brz-3.0.txt (+3/-0) |
To merge this branch: | bzr merge lp:~jelmer/brz/auto-rename-fix |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Packman | Approve | ||
Review via email: mp+333584@code.launchpad.net |
Commit message
Description of the change
Fixed bug with RenameMap (bzr move --auto), also RenameMap has ability to detect files moved into new unversioned directories.
(Original MP at https:/
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 'breezy/rename_map.py' |
2 | --- breezy/rename_map.py 2017-06-05 20:48:31 +0000 |
3 | +++ breezy/rename_map.py 2017-11-11 18:32:23 +0000 |
4 | @@ -186,7 +186,8 @@ |
5 | for (file_id, paths, changed_content, versioned, parent, name, |
6 | kind, executable) in iterator: |
7 | if kind[1] is None and versioned[1]: |
8 | - missing_parents.setdefault(parent[0], set()).add(file_id) |
9 | + if not self.tree.has_filename(self.tree.id2path(parent[0])): |
10 | + missing_parents.setdefault(parent[0], set()).add(file_id) |
11 | if kind[0] == 'file': |
12 | missing_files.add(file_id) |
13 | else: |
14 | @@ -258,6 +259,12 @@ |
15 | parent_id = matches.get(parent_path) |
16 | if parent_id is None: |
17 | parent_id = self.tree.path2id(parent_path) |
18 | + if parent_id is None: |
19 | + added, ignored = self.tree.smart_add([parent_path], recurse=False) |
20 | + if len(ignored) > 0 and ignored[0] == parent_path: |
21 | + continue |
22 | + else: |
23 | + parent_id = self.tree.path2id(parent_path) |
24 | if entry.name == new_name and entry.parent_id == parent_id: |
25 | continue |
26 | new_entry = entry.copy() |
27 | |
28 | === modified file 'breezy/tests/test_groupcompress.py' |
29 | --- breezy/tests/test_groupcompress.py 2017-10-27 00:18:42 +0000 |
30 | +++ breezy/tests/test_groupcompress.py 2017-11-11 18:32:23 +0000 |
31 | @@ -53,7 +53,7 @@ |
32 | class TestGroupCompressor(tests.TestCase): |
33 | |
34 | def _chunks_to_repr_lines(self, chunks): |
35 | - return '\n'.join(map(repr, ''.join(chunks).split('\n'))) |
36 | + return '\n'.join(map(repr, b''.join(chunks).split(b'\n'))) |
37 | |
38 | def assertEqualDiffEncoded(self, expected, actual): |
39 | """Compare the actual content to the expected content. |
40 | @@ -82,18 +82,18 @@ |
41 | # diff against NUKK |
42 | compressor = self.compressor() |
43 | sha1, start_point, end_point, _ = compressor.compress(('label',), |
44 | - 'strange\ncommon\n', None) |
45 | - self.assertEqual(sha_string('strange\ncommon\n'), sha1) |
46 | - expected_lines = 'f' '\x0f' 'strange\ncommon\n' |
47 | - self.assertEqual(expected_lines, ''.join(compressor.chunks)) |
48 | + b'strange\ncommon\n', None) |
49 | + self.assertEqual(sha_string(b'strange\ncommon\n'), sha1) |
50 | + expected_lines = b'f\x0fstrange\ncommon\n' |
51 | + self.assertEqual(expected_lines, b''.join(compressor.chunks)) |
52 | self.assertEqual(0, start_point) |
53 | - self.assertEqual(sum(map(len, expected_lines)), end_point) |
54 | + self.assertEqual(len(expected_lines), end_point) |
55 | |
56 | def test_empty_content(self): |
57 | compressor = self.compressor() |
58 | # Adding empty bytes should return the 'null' record |
59 | sha1, start_point, end_point, kind = compressor.compress(('empty',), |
60 | - '', None) |
61 | + b'', None) |
62 | self.assertEqual(0, start_point) |
63 | self.assertEqual(0, end_point) |
64 | self.assertEqual('fulltext', kind) |
65 | @@ -101,10 +101,10 @@ |
66 | self.assertEqual(0, compressor.endpoint) |
67 | self.assertEqual([], compressor.chunks) |
68 | # Even after adding some content |
69 | - compressor.compress(('content',), 'some\nbytes\n', None) |
70 | + compressor.compress(('content',), b'some\nbytes\n', None) |
71 | self.assertTrue(compressor.endpoint > 0) |
72 | sha1, start_point, end_point, kind = compressor.compress(('empty2',), |
73 | - '', None) |
74 | + b'', None) |
75 | self.assertEqual(0, start_point) |
76 | self.assertEqual(0, end_point) |
77 | self.assertEqual('fulltext', kind) |
78 | @@ -115,26 +115,26 @@ |
79 | # reading something that is in the compressor stream already. |
80 | compressor = self.compressor() |
81 | sha1_1, _, _, _ = compressor.compress(('label',), |
82 | - 'strange\ncommon long line\nthat needs a 16 byte match\n', None) |
83 | + b'strange\ncommon long line\nthat needs a 16 byte match\n', None) |
84 | expected_lines = list(compressor.chunks) |
85 | sha1_2, _, end_point, _ = compressor.compress(('newlabel',), |
86 | - 'common long line\nthat needs a 16 byte match\ndifferent\n', None) |
87 | + b'common long line\nthat needs a 16 byte match\ndifferent\n', None) |
88 | # get the first out |
89 | - self.assertEqual(('strange\ncommon long line\n' |
90 | - 'that needs a 16 byte match\n', sha1_1), |
91 | + self.assertEqual((b'strange\ncommon long line\n' |
92 | + b'that needs a 16 byte match\n', sha1_1), |
93 | compressor.extract(('label',))) |
94 | # and the second |
95 | - self.assertEqual(('common long line\nthat needs a 16 byte match\n' |
96 | - 'different\n', sha1_2), |
97 | + self.assertEqual((b'common long line\nthat needs a 16 byte match\n' |
98 | + b'different\n', sha1_2), |
99 | compressor.extract(('newlabel',))) |
100 | |
101 | def test_pop_last(self): |
102 | compressor = self.compressor() |
103 | _, _, _, _ = compressor.compress(('key1',), |
104 | - 'some text\nfor the first entry\n', None) |
105 | + b'some text\nfor the first entry\n', None) |
106 | expected_lines = list(compressor.chunks) |
107 | _, _, _, _ = compressor.compress(('key2',), |
108 | - 'some text\nfor the second entry\n', None) |
109 | + b'some text\nfor the second entry\n', None) |
110 | compressor.pop_last() |
111 | self.assertEqual(expected_lines, compressor.chunks) |
112 | |
113 | @@ -147,41 +147,41 @@ |
114 | def test_stats(self): |
115 | compressor = self.compressor() |
116 | compressor.compress(('label',), |
117 | - 'strange\n' |
118 | - 'common very very long line\n' |
119 | - 'plus more text\n', None) |
120 | + b'strange\n' |
121 | + b'common very very long line\n' |
122 | + b'plus more text\n', None) |
123 | compressor.compress(('newlabel',), |
124 | - 'common very very long line\n' |
125 | - 'plus more text\n' |
126 | - 'different\n' |
127 | - 'moredifferent\n', None) |
128 | + b'common very very long line\n' |
129 | + b'plus more text\n' |
130 | + b'different\n' |
131 | + b'moredifferent\n', None) |
132 | compressor.compress(('label3',), |
133 | - 'new\n' |
134 | - 'common very very long line\n' |
135 | - 'plus more text\n' |
136 | - 'different\n' |
137 | - 'moredifferent\n', None) |
138 | + b'new\n' |
139 | + b'common very very long line\n' |
140 | + b'plus more text\n' |
141 | + b'different\n' |
142 | + b'moredifferent\n', None) |
143 | self.assertAlmostEqual(1.9, compressor.ratio(), 1) |
144 | |
145 | def test_two_nosha_delta(self): |
146 | compressor = self.compressor() |
147 | sha1_1, _, _, _ = compressor.compress(('label',), |
148 | - 'strange\ncommon long line\nthat needs a 16 byte match\n', None) |
149 | + b'strange\ncommon long line\nthat needs a 16 byte match\n', None) |
150 | expected_lines = list(compressor.chunks) |
151 | sha1_2, start_point, end_point, _ = compressor.compress(('newlabel',), |
152 | - 'common long line\nthat needs a 16 byte match\ndifferent\n', None) |
153 | - self.assertEqual(sha_string('common long line\n' |
154 | - 'that needs a 16 byte match\n' |
155 | - 'different\n'), sha1_2) |
156 | + b'common long line\nthat needs a 16 byte match\ndifferent\n', None) |
157 | + self.assertEqual(sha_string(b'common long line\n' |
158 | + b'that needs a 16 byte match\n' |
159 | + b'different\n'), sha1_2) |
160 | expected_lines.extend([ |
161 | # 'delta', delta length |
162 | - 'd\x0f', |
163 | + b'd\x0f', |
164 | # source and target length |
165 | - '\x36', |
166 | + b'\x36', |
167 | # copy the line common |
168 | - '\x91\x0a\x2c', #copy, offset 0x0a, len 0x2c |
169 | + b'\x91\x0a\x2c', #copy, offset 0x0a, len 0x2c |
170 | # add the line different, and the trailing newline |
171 | - '\x0adifferent\n', # insert 10 bytes |
172 | + b'\x0adifferent\n', # insert 10 bytes |
173 | ]) |
174 | self.assertEqualDiffEncoded(expected_lines, compressor.chunks) |
175 | self.assertEqual(sum(map(len, expected_lines)), end_point) |
176 | @@ -191,29 +191,29 @@ |
177 | # both parents. |
178 | compressor = self.compressor() |
179 | sha1_1, _, _, _ = compressor.compress(('label',), |
180 | - 'strange\ncommon very very long line\nwith some extra text\n', None) |
181 | + b'strange\ncommon very very long line\nwith some extra text\n', None) |
182 | sha1_2, _, _, _ = compressor.compress(('newlabel',), |
183 | - 'different\nmoredifferent\nand then some more\n', None) |
184 | + b'different\nmoredifferent\nand then some more\n', None) |
185 | expected_lines = list(compressor.chunks) |
186 | sha1_3, start_point, end_point, _ = compressor.compress(('label3',), |
187 | - 'new\ncommon very very long line\nwith some extra text\n' |
188 | - 'different\nmoredifferent\nand then some more\n', |
189 | + b'new\ncommon very very long line\nwith some extra text\n' |
190 | + b'different\nmoredifferent\nand then some more\n', |
191 | None) |
192 | self.assertEqual( |
193 | - sha_string('new\ncommon very very long line\nwith some extra text\n' |
194 | - 'different\nmoredifferent\nand then some more\n'), |
195 | + sha_string(b'new\ncommon very very long line\nwith some extra text\n' |
196 | + b'different\nmoredifferent\nand then some more\n'), |
197 | sha1_3) |
198 | expected_lines.extend([ |
199 | # 'delta', delta length |
200 | - 'd\x0b', |
201 | + b'd\x0b', |
202 | # source and target length |
203 | - '\x5f' |
204 | + b'\x5f' |
205 | # insert new |
206 | - '\x03new', |
207 | + b'\x03new', |
208 | # Copy of first parent 'common' range |
209 | - '\x91\x09\x31' # copy, offset 0x09, 0x31 bytes |
210 | + b'\x91\x09\x31' # copy, offset 0x09, 0x31 bytes |
211 | # Copy of second parent 'different' range |
212 | - '\x91\x3c\x2b' # copy, offset 0x3c, 0x2b bytes |
213 | + b'\x91\x3c\x2b' # copy, offset 0x3c, 0x2b bytes |
214 | ]) |
215 | self.assertEqualDiffEncoded(expected_lines, compressor.chunks) |
216 | self.assertEqual(sum(map(len, expected_lines)), end_point) |
217 | @@ -226,41 +226,41 @@ |
218 | def test_stats(self): |
219 | compressor = self.compressor() |
220 | compressor.compress(('label',), |
221 | - 'strange\n' |
222 | - 'common very very long line\n' |
223 | - 'plus more text\n', None) |
224 | + b'strange\n' |
225 | + b'common very very long line\n' |
226 | + b'plus more text\n', None) |
227 | compressor.compress(('newlabel',), |
228 | - 'common very very long line\n' |
229 | - 'plus more text\n' |
230 | - 'different\n' |
231 | - 'moredifferent\n', None) |
232 | + b'common very very long line\n' |
233 | + b'plus more text\n' |
234 | + b'different\n' |
235 | + b'moredifferent\n', None) |
236 | compressor.compress(('label3',), |
237 | - 'new\n' |
238 | - 'common very very long line\n' |
239 | - 'plus more text\n' |
240 | - 'different\n' |
241 | - 'moredifferent\n', None) |
242 | + b'new\n' |
243 | + b'common very very long line\n' |
244 | + b'plus more text\n' |
245 | + b'different\n' |
246 | + b'moredifferent\n', None) |
247 | self.assertAlmostEqual(1.9, compressor.ratio(), 1) |
248 | |
249 | def test_two_nosha_delta(self): |
250 | compressor = self.compressor() |
251 | sha1_1, _, _, _ = compressor.compress(('label',), |
252 | - 'strange\ncommon long line\nthat needs a 16 byte match\n', None) |
253 | + b'strange\ncommon long line\nthat needs a 16 byte match\n', None) |
254 | expected_lines = list(compressor.chunks) |
255 | sha1_2, start_point, end_point, _ = compressor.compress(('newlabel',), |
256 | - 'common long line\nthat needs a 16 byte match\ndifferent\n', None) |
257 | - self.assertEqual(sha_string('common long line\n' |
258 | - 'that needs a 16 byte match\n' |
259 | - 'different\n'), sha1_2) |
260 | + b'common long line\nthat needs a 16 byte match\ndifferent\n', None) |
261 | + self.assertEqual(sha_string(b'common long line\n' |
262 | + b'that needs a 16 byte match\n' |
263 | + b'different\n'), sha1_2) |
264 | expected_lines.extend([ |
265 | # 'delta', delta length |
266 | - 'd\x0f', |
267 | + b'd\x0f', |
268 | # target length |
269 | - '\x36', |
270 | + b'\x36', |
271 | # copy the line common |
272 | - '\x91\x0a\x2c', #copy, offset 0x0a, len 0x2c |
273 | + b'\x91\x0a\x2c', #copy, offset 0x0a, len 0x2c |
274 | # add the line different, and the trailing newline |
275 | - '\x0adifferent\n', # insert 10 bytes |
276 | + b'\x0adifferent\n', # insert 10 bytes |
277 | ]) |
278 | self.assertEqualDiffEncoded(expected_lines, compressor.chunks) |
279 | self.assertEqual(sum(map(len, expected_lines)), end_point) |
280 | @@ -270,29 +270,29 @@ |
281 | # both parents. |
282 | compressor = self.compressor() |
283 | sha1_1, _, _, _ = compressor.compress(('label',), |
284 | - 'strange\ncommon very very long line\nwith some extra text\n', None) |
285 | + b'strange\ncommon very very long line\nwith some extra text\n', None) |
286 | sha1_2, _, _, _ = compressor.compress(('newlabel',), |
287 | - 'different\nmoredifferent\nand then some more\n', None) |
288 | + b'different\nmoredifferent\nand then some more\n', None) |
289 | expected_lines = list(compressor.chunks) |
290 | sha1_3, start_point, end_point, _ = compressor.compress(('label3',), |
291 | - 'new\ncommon very very long line\nwith some extra text\n' |
292 | - 'different\nmoredifferent\nand then some more\n', |
293 | + b'new\ncommon very very long line\nwith some extra text\n' |
294 | + b'different\nmoredifferent\nand then some more\n', |
295 | None) |
296 | self.assertEqual( |
297 | - sha_string('new\ncommon very very long line\nwith some extra text\n' |
298 | - 'different\nmoredifferent\nand then some more\n'), |
299 | + sha_string(b'new\ncommon very very long line\nwith some extra text\n' |
300 | + b'different\nmoredifferent\nand then some more\n'), |
301 | sha1_3) |
302 | expected_lines.extend([ |
303 | # 'delta', delta length |
304 | - 'd\x0c', |
305 | + b'd\x0c', |
306 | # target length |
307 | - '\x5f' |
308 | + b'\x5f' |
309 | # insert new |
310 | - '\x04new\n', |
311 | + b'\x04new\n', |
312 | # Copy of first parent 'common' range |
313 | - '\x91\x0a\x30' # copy, offset 0x0a, 0x30 bytes |
314 | + b'\x91\x0a\x30' # copy, offset 0x0a, 0x30 bytes |
315 | # Copy of second parent 'different' range |
316 | - '\x91\x3c\x2b' # copy, offset 0x3c, 0x2b bytes |
317 | + b'\x91\x3c\x2b' # copy, offset 0x3c, 0x2b bytes |
318 | ]) |
319 | self.assertEqualDiffEncoded(expected_lines, compressor.chunks) |
320 | self.assertEqual(sum(map(len, expected_lines)), end_point) |
321 | @@ -316,32 +316,32 @@ |
322 | |
323 | def test_from_empty_bytes(self): |
324 | self.assertRaises(ValueError, |
325 | - groupcompress.GroupCompressBlock.from_bytes, '') |
326 | + groupcompress.GroupCompressBlock.from_bytes, b'') |
327 | |
328 | def test_from_minimal_bytes(self): |
329 | block = groupcompress.GroupCompressBlock.from_bytes( |
330 | - 'gcb1z\n0\n0\n') |
331 | + b'gcb1z\n0\n0\n') |
332 | self.assertIsInstance(block, groupcompress.GroupCompressBlock) |
333 | self.assertIs(None, block._content) |
334 | - self.assertEqual('', block._z_content) |
335 | + self.assertEqual(b'', block._z_content) |
336 | block._ensure_content() |
337 | - self.assertEqual('', block._content) |
338 | - self.assertEqual('', block._z_content) |
339 | + self.assertEqual(b'', block._content) |
340 | + self.assertEqual(b'', block._z_content) |
341 | block._ensure_content() # Ensure content is safe to call 2x |
342 | |
343 | def test_from_invalid(self): |
344 | self.assertRaises(ValueError, |
345 | groupcompress.GroupCompressBlock.from_bytes, |
346 | - 'this is not a valid header') |
347 | + b'this is not a valid header') |
348 | |
349 | def test_from_bytes(self): |
350 | - content = ('a tiny bit of content\n') |
351 | + content = (b'a tiny bit of content\n') |
352 | z_content = zlib.compress(content) |
353 | z_bytes = ( |
354 | - 'gcb1z\n' # group compress block v1 plain |
355 | - '%d\n' # Length of compressed content |
356 | - '%d\n' # Length of uncompressed content |
357 | - '%s' # Compressed content |
358 | + b'gcb1z\n' # group compress block v1 plain |
359 | + b'%d\n' # Length of compressed content |
360 | + b'%d\n' # Length of uncompressed content |
361 | + b'%s' # Compressed content |
362 | ) % (len(z_content), len(content), z_content) |
363 | block = groupcompress.GroupCompressBlock.from_bytes( |
364 | z_bytes) |
365 | @@ -354,20 +354,20 @@ |
366 | self.assertEqual(content, block._content) |
367 | |
368 | def test_to_chunks(self): |
369 | - content_chunks = ['this is some content\n', |
370 | - 'this content will be compressed\n'] |
371 | + content_chunks = [b'this is some content\n', |
372 | + b'this content will be compressed\n'] |
373 | content_len = sum(map(len, content_chunks)) |
374 | - content = ''.join(content_chunks) |
375 | + content = b''.join(content_chunks) |
376 | gcb = groupcompress.GroupCompressBlock() |
377 | gcb.set_chunked_content(content_chunks, content_len) |
378 | total_len, block_chunks = gcb.to_chunks() |
379 | - block_bytes = ''.join(block_chunks) |
380 | + block_bytes = b''.join(block_chunks) |
381 | self.assertEqual(gcb._z_content_length, len(gcb._z_content)) |
382 | self.assertEqual(total_len, len(block_bytes)) |
383 | self.assertEqual(gcb._content_length, content_len) |
384 | - expected_header =('gcb1z\n' # group compress block v1 zlib |
385 | - '%d\n' # Length of compressed content |
386 | - '%d\n' # Length of uncompressed content |
387 | + expected_header =(b'gcb1z\n' # group compress block v1 zlib |
388 | + b'%d\n' # Length of compressed content |
389 | + b'%d\n' # Length of uncompressed content |
390 | ) % (gcb._z_content_length, gcb._content_length) |
391 | # The first chunk should be the header chunk. It is small, fixed size, |
392 | # and there is no compelling reason to split it up |
393 | @@ -378,30 +378,30 @@ |
394 | self.assertEqual(content, raw_bytes) |
395 | |
396 | def test_to_bytes(self): |
397 | - content = ('this is some content\n' |
398 | - 'this content will be compressed\n') |
399 | + content = (b'this is some content\n' |
400 | + b'this content will be compressed\n') |
401 | gcb = groupcompress.GroupCompressBlock() |
402 | gcb.set_content(content) |
403 | - bytes = gcb.to_bytes() |
404 | + data = gcb.to_bytes() |
405 | self.assertEqual(gcb._z_content_length, len(gcb._z_content)) |
406 | self.assertEqual(gcb._content_length, len(content)) |
407 | - expected_header =('gcb1z\n' # group compress block v1 zlib |
408 | - '%d\n' # Length of compressed content |
409 | - '%d\n' # Length of uncompressed content |
410 | + expected_header =(b'gcb1z\n' # group compress block v1 zlib |
411 | + b'%d\n' # Length of compressed content |
412 | + b'%d\n' # Length of uncompressed content |
413 | ) % (gcb._z_content_length, gcb._content_length) |
414 | - self.assertStartsWith(bytes, expected_header) |
415 | - remaining_bytes = bytes[len(expected_header):] |
416 | + self.assertStartsWith(data, expected_header) |
417 | + remaining_bytes = data[len(expected_header):] |
418 | raw_bytes = zlib.decompress(remaining_bytes) |
419 | self.assertEqual(content, raw_bytes) |
420 | |
421 | # we should get the same results if using the chunked version |
422 | gcb = groupcompress.GroupCompressBlock() |
423 | - gcb.set_chunked_content(['this is some content\n' |
424 | - 'this content will be compressed\n'], |
425 | + gcb.set_chunked_content([b'this is some content\n' |
426 | + b'this content will be compressed\n'], |
427 | len(content)) |
428 | - old_bytes = bytes |
429 | - bytes = gcb.to_bytes() |
430 | - self.assertEqual(old_bytes, bytes) |
431 | + old_data = data |
432 | + data = gcb.to_bytes() |
433 | + self.assertEqual(old_data, data) |
434 | |
435 | def test_partial_decomp(self): |
436 | content_chunks = [] |
437 | @@ -410,11 +410,11 @@ |
438 | # compresses a bit too well, we want a combination, so we combine a sha |
439 | # hash with compressible data. |
440 | for i in range(2048): |
441 | - next_content = '%d\nThis is a bit of duplicate text\n' % (i,) |
442 | + next_content = b'%d\nThis is a bit of duplicate text\n' % (i,) |
443 | content_chunks.append(next_content) |
444 | next_sha1 = osutils.sha_string(next_content) |
445 | - content_chunks.append(next_sha1 + '\n') |
446 | - content = ''.join(content_chunks) |
447 | + content_chunks.append(next_sha1 + b'\n') |
448 | + content = b''.join(content_chunks) |
449 | self.assertEqual(158634, len(content)) |
450 | z_content = zlib.compress(content) |
451 | self.assertEqual(57182, len(z_content)) |
452 | @@ -455,11 +455,11 @@ |
453 | # compresses a bit too well, we want a combination, so we combine a sha |
454 | # hash with compressible data. |
455 | for i in range(2048): |
456 | - next_content = '%d\nThis is a bit of duplicate text\n' % (i,) |
457 | + next_content = b'%d\nThis is a bit of duplicate text\n' % (i,) |
458 | content_chunks.append(next_content) |
459 | next_sha1 = osutils.sha_string(next_content) |
460 | - content_chunks.append(next_sha1 + '\n') |
461 | - content = ''.join(content_chunks) |
462 | + content_chunks.append(next_sha1 + b'\n') |
463 | + content = b''.join(content_chunks) |
464 | self.assertEqual(158634, len(content)) |
465 | z_content = zlib.compress(content) |
466 | self.assertEqual(57182, len(z_content)) |
467 | @@ -477,14 +477,14 @@ |
468 | self.assertIs(None, block._z_content_decompressor) |
469 | |
470 | def test__dump(self): |
471 | - dup_content = 'some duplicate content\nwhich is sufficiently long\n' |
472 | - key_to_text = {('1',): dup_content + '1 unique\n', |
473 | - ('2',): dup_content + '2 extra special\n'} |
474 | + dup_content = b'some duplicate content\nwhich is sufficiently long\n' |
475 | + key_to_text = {(b'1',): dup_content + b'1 unique\n', |
476 | + (b'2',): dup_content + b'2 extra special\n'} |
477 | locs, block = self.make_block(key_to_text) |
478 | - self.assertEqual([('f', len(key_to_text[('1',)])), |
479 | - ('d', 21, len(key_to_text[('2',)]), |
480 | - [('c', 2, len(dup_content)), |
481 | - ('i', len('2 extra special\n'), '') |
482 | + self.assertEqual([(b'f', len(key_to_text[(b'1',)])), |
483 | + (b'd', 21, len(key_to_text[(b'2',)]), |
484 | + [(b'c', 2, len(dup_content)), |
485 | + (b'i', len(b'2 extra special\n'), b'') |
486 | ]), |
487 | ], block._dump()) |
488 | |
489 | @@ -516,10 +516,10 @@ |
490 | return btree_index.BTreeGraphIndex(trans, name, size) |
491 | |
492 | def make_g_index_missing_parent(self): |
493 | - graph_index = self.make_g_index('missing_parent', 1, |
494 | - [(('parent', ), '2 78 2 10', ([],)), |
495 | - (('tip', ), '2 78 2 10', |
496 | - ([('parent', ), ('missing-parent', )],)), |
497 | + graph_index = self.make_g_index(b'missing_parent', 1, |
498 | + [((b'parent', ), b'2 78 2 10', ([],)), |
499 | + ((b'tip', ), b'2 78 2 10', |
500 | + ([(b'parent', ), (b'missing-parent', )],)), |
501 | ]) |
502 | return graph_index |
503 | |
504 | @@ -527,76 +527,78 @@ |
505 | # Consider promoting 'as-requested' to general availability, and |
506 | # make this a VF interface test |
507 | vf = self.make_test_vf(False, dir='source') |
508 | - vf.add_lines(('a',), (), ['lines\n']) |
509 | - vf.add_lines(('b',), (), ['lines\n']) |
510 | - vf.add_lines(('c',), (), ['lines\n']) |
511 | - vf.add_lines(('d',), (), ['lines\n']) |
512 | + vf.add_lines((b'a',), (), [b'lines\n']) |
513 | + vf.add_lines((b'b',), (), [b'lines\n']) |
514 | + vf.add_lines((b'c',), (), [b'lines\n']) |
515 | + vf.add_lines((b'd',), (), [b'lines\n']) |
516 | vf.writer.end() |
517 | keys = [record.key for record in vf.get_record_stream( |
518 | - [('a',), ('b',), ('c',), ('d',)], |
519 | + [(b'a',), (b'b',), (b'c',), (b'd',)], |
520 | 'as-requested', False)] |
521 | - self.assertEqual([('a',), ('b',), ('c',), ('d',)], keys) |
522 | + self.assertEqual([(b'a',), (b'b',), (b'c',), (b'd',)], keys) |
523 | keys = [record.key for record in vf.get_record_stream( |
524 | - [('b',), ('a',), ('d',), ('c',)], |
525 | + [(b'b',), (b'a',), (b'd',), (b'c',)], |
526 | 'as-requested', False)] |
527 | - self.assertEqual([('b',), ('a',), ('d',), ('c',)], keys) |
528 | + self.assertEqual([(b'b',), (b'a',), (b'd',), (b'c',)], keys) |
529 | |
530 | # It should work even after being repacked into another VF |
531 | vf2 = self.make_test_vf(False, dir='target') |
532 | vf2.insert_record_stream(vf.get_record_stream( |
533 | - [('b',), ('a',), ('d',), ('c',)], 'as-requested', False)) |
534 | + [(b'b',), (b'a',), (b'd',), (b'c',)], 'as-requested', False)) |
535 | vf2.writer.end() |
536 | |
537 | keys = [record.key for record in vf2.get_record_stream( |
538 | - [('a',), ('b',), ('c',), ('d',)], |
539 | + [(b'a',), (b'b',), (b'c',), (b'd',)], |
540 | 'as-requested', False)] |
541 | - self.assertEqual([('a',), ('b',), ('c',), ('d',)], keys) |
542 | + self.assertEqual([(b'a',), (b'b',), (b'c',), (b'd',)], keys) |
543 | keys = [record.key for record in vf2.get_record_stream( |
544 | - [('b',), ('a',), ('d',), ('c',)], |
545 | + [(b'b',), (b'a',), (b'd',), (b'c',)], |
546 | 'as-requested', False)] |
547 | - self.assertEqual([('b',), ('a',), ('d',), ('c',)], keys) |
548 | + self.assertEqual([(b'b',), (b'a',), (b'd',), (b'c',)], keys) |
549 | |
550 | def test_get_record_stream_max_bytes_to_index_default(self): |
551 | vf = self.make_test_vf(True, dir='source') |
552 | - vf.add_lines(('a',), (), ['lines\n']) |
553 | + vf.add_lines((b'a',), (), [b'lines\n']) |
554 | vf.writer.end() |
555 | - record = next(vf.get_record_stream([('a',)], 'unordered', True)) |
556 | + record = next(vf.get_record_stream([(b'a',)], 'unordered', True)) |
557 | self.assertEqual(vf._DEFAULT_COMPRESSOR_SETTINGS, |
558 | record._manager._get_compressor_settings()) |
559 | |
560 | def test_get_record_stream_accesses_compressor_settings(self): |
561 | vf = self.make_test_vf(True, dir='source') |
562 | - vf.add_lines(('a',), (), ['lines\n']) |
563 | + vf.add_lines((b'a',), (), [b'lines\n']) |
564 | vf.writer.end() |
565 | vf._max_bytes_to_index = 1234 |
566 | - record = next(vf.get_record_stream([('a',)], 'unordered', True)) |
567 | + record = next(vf.get_record_stream([(b'a',)], 'unordered', True)) |
568 | self.assertEqual(dict(max_bytes_to_index=1234), |
569 | record._manager._get_compressor_settings()) |
570 | |
571 | + @staticmethod |
572 | + def grouped_stream(revision_ids, first_parents=()): |
573 | + parents = first_parents |
574 | + for revision_id in revision_ids: |
575 | + key = (revision_id,) |
576 | + record = versionedfile.FulltextContentFactory( |
577 | + key, parents, None, |
578 | + b'some content that is\n' |
579 | + b'identical except for\n' |
580 | + b'revision_id:%s\n' % (revision_id,)) |
581 | + yield record |
582 | + parents = (key,) |
583 | + |
584 | def test_insert_record_stream_reuses_blocks(self): |
585 | vf = self.make_test_vf(True, dir='source') |
586 | - def grouped_stream(revision_ids, first_parents=()): |
587 | - parents = first_parents |
588 | - for revision_id in revision_ids: |
589 | - key = (revision_id,) |
590 | - record = versionedfile.FulltextContentFactory( |
591 | - key, parents, None, |
592 | - 'some content that is\n' |
593 | - 'identical except for\n' |
594 | - 'revision_id:%s\n' % (revision_id,)) |
595 | - yield record |
596 | - parents = (key,) |
597 | # One group, a-d |
598 | - vf.insert_record_stream(grouped_stream(['a', 'b', 'c', 'd'])) |
599 | + vf.insert_record_stream(self.grouped_stream([b'a', b'b', b'c', b'd'])) |
600 | # Second group, e-h |
601 | - vf.insert_record_stream(grouped_stream(['e', 'f', 'g', 'h'], |
602 | - first_parents=(('d',),))) |
603 | + vf.insert_record_stream(self.grouped_stream( |
604 | + [b'e', b'f', b'g', b'h'], first_parents=((b'd',),))) |
605 | block_bytes = {} |
606 | - stream = vf.get_record_stream([(r,) for r in 'abcdefgh'], |
607 | - 'unordered', False) |
608 | + stream = vf.get_record_stream( |
609 | + [(r.encode(),) for r in 'abcdefgh'], 'unordered', False) |
610 | num_records = 0 |
611 | for record in stream: |
612 | - if record.key in [('a',), ('e',)]: |
613 | + if record.key in [(b'a',), (b'e',)]: |
614 | self.assertEqual('groupcompress-block', record.storage_kind) |
615 | else: |
616 | self.assertEqual('groupcompress-block-ref', |
617 | @@ -605,28 +607,27 @@ |
618 | num_records += 1 |
619 | self.assertEqual(8, num_records) |
620 | for r in 'abcd': |
621 | - key = (r,) |
622 | - self.assertIs(block_bytes[key], block_bytes[('a',)]) |
623 | - self.assertNotEqual(block_bytes[key], block_bytes[('e',)]) |
624 | + key = (r.encode(),) |
625 | + self.assertIs(block_bytes[key], block_bytes[(b'a',)]) |
626 | + self.assertNotEqual(block_bytes[key], block_bytes[(b'e',)]) |
627 | for r in 'efgh': |
628 | - key = (r,) |
629 | - self.assertIs(block_bytes[key], block_bytes[('e',)]) |
630 | - self.assertNotEqual(block_bytes[key], block_bytes[('a',)]) |
631 | + key = (r.encode(),) |
632 | + self.assertIs(block_bytes[key], block_bytes[(b'e',)]) |
633 | + self.assertNotEqual(block_bytes[key], block_bytes[(b'a',)]) |
634 | # Now copy the blocks into another vf, and ensure that the blocks are |
635 | # preserved without creating new entries |
636 | vf2 = self.make_test_vf(True, dir='target') |
637 | + keys = [(r.encode(),) for r in 'abcdefgh'] |
638 | # ordering in 'groupcompress' order, should actually swap the groups in |
639 | # the target vf, but the groups themselves should not be disturbed. |
640 | def small_size_stream(): |
641 | - for record in vf.get_record_stream([(r,) for r in 'abcdefgh'], |
642 | - 'groupcompress', False): |
643 | + for record in vf.get_record_stream(keys, 'groupcompress', False): |
644 | record._manager._full_enough_block_size = \ |
645 | record._manager._block._content_length |
646 | yield record |
647 | - |
648 | + |
649 | vf2.insert_record_stream(small_size_stream()) |
650 | - stream = vf2.get_record_stream([(r,) for r in 'abcdefgh'], |
651 | - 'groupcompress', False) |
652 | + stream = vf2.get_record_stream(keys, 'groupcompress', False) |
653 | vf2.writer.end() |
654 | num_records = 0 |
655 | for record in stream: |
656 | @@ -637,30 +638,19 @@ |
657 | |
658 | def test_insert_record_stream_packs_on_the_fly(self): |
659 | vf = self.make_test_vf(True, dir='source') |
660 | - def grouped_stream(revision_ids, first_parents=()): |
661 | - parents = first_parents |
662 | - for revision_id in revision_ids: |
663 | - key = (revision_id,) |
664 | - record = versionedfile.FulltextContentFactory( |
665 | - key, parents, None, |
666 | - 'some content that is\n' |
667 | - 'identical except for\n' |
668 | - 'revision_id:%s\n' % (revision_id,)) |
669 | - yield record |
670 | - parents = (key,) |
671 | # One group, a-d |
672 | - vf.insert_record_stream(grouped_stream(['a', 'b', 'c', 'd'])) |
673 | + vf.insert_record_stream(self.grouped_stream([b'a', b'b', b'c', b'd'])) |
674 | # Second group, e-h |
675 | - vf.insert_record_stream(grouped_stream(['e', 'f', 'g', 'h'], |
676 | - first_parents=(('d',),))) |
677 | + vf.insert_record_stream(self.grouped_stream( |
678 | + [b'e', b'f', b'g', b'h'], first_parents=((b'd',),))) |
679 | # Now copy the blocks into another vf, and see that the |
680 | # insert_record_stream rebuilt a new block on-the-fly because of |
681 | # under-utilization |
682 | vf2 = self.make_test_vf(True, dir='target') |
683 | + keys = [(r.encode(),) for r in 'abcdefgh'] |
684 | vf2.insert_record_stream(vf.get_record_stream( |
685 | - [(r,) for r in 'abcdefgh'], 'groupcompress', False)) |
686 | - stream = vf2.get_record_stream([(r,) for r in 'abcdefgh'], |
687 | - 'groupcompress', False) |
688 | + keys, 'groupcompress', False)) |
689 | + stream = vf2.get_record_stream(keys, 'groupcompress', False) |
690 | vf2.writer.end() |
691 | num_records = 0 |
692 | # All of the records should be recombined into a single block |
693 | @@ -675,39 +665,27 @@ |
694 | |
695 | def test__insert_record_stream_no_reuse_block(self): |
696 | vf = self.make_test_vf(True, dir='source') |
697 | - def grouped_stream(revision_ids, first_parents=()): |
698 | - parents = first_parents |
699 | - for revision_id in revision_ids: |
700 | - key = (revision_id,) |
701 | - record = versionedfile.FulltextContentFactory( |
702 | - key, parents, None, |
703 | - 'some content that is\n' |
704 | - 'identical except for\n' |
705 | - 'revision_id:%s\n' % (revision_id,)) |
706 | - yield record |
707 | - parents = (key,) |
708 | # One group, a-d |
709 | - vf.insert_record_stream(grouped_stream(['a', 'b', 'c', 'd'])) |
710 | + vf.insert_record_stream(self.grouped_stream([b'a', b'b', b'c', b'd'])) |
711 | # Second group, e-h |
712 | - vf.insert_record_stream(grouped_stream(['e', 'f', 'g', 'h'], |
713 | - first_parents=(('d',),))) |
714 | + vf.insert_record_stream(self.grouped_stream( |
715 | + [b'e', b'f', b'g', b'h'], first_parents=((b'd',),))) |
716 | vf.writer.end() |
717 | - self.assertEqual(8, len(list(vf.get_record_stream( |
718 | - [(r,) for r in 'abcdefgh'], |
719 | - 'unordered', False)))) |
720 | + keys = [(r.encode(),) for r in 'abcdefgh'] |
721 | + self.assertEqual(8, len(list( |
722 | + vf.get_record_stream(keys, 'unordered', False)))) |
723 | # Now copy the blocks into another vf, and ensure that the blocks are |
724 | # preserved without creating new entries |
725 | vf2 = self.make_test_vf(True, dir='target') |
726 | # ordering in 'groupcompress' order, should actually swap the groups in |
727 | # the target vf, but the groups themselves should not be disturbed. |
728 | list(vf2._insert_record_stream(vf.get_record_stream( |
729 | - [(r,) for r in 'abcdefgh'], 'groupcompress', False), |
730 | + keys, 'groupcompress', False), |
731 | reuse_blocks=False)) |
732 | vf2.writer.end() |
733 | # After inserting with reuse_blocks=False, we should have everything in |
734 | # a single new block. |
735 | - stream = vf2.get_record_stream([(r,) for r in 'abcdefgh'], |
736 | - 'groupcompress', False) |
737 | + stream = vf2.get_record_stream(keys, 'groupcompress', False) |
738 | block = None |
739 | for record in stream: |
740 | if block is None: |
741 | @@ -723,7 +701,7 @@ |
742 | track_external_parent_refs=True) |
743 | index.scan_unvalidated_index(unvalidated) |
744 | self.assertEqual( |
745 | - frozenset([('missing-parent',)]), index.get_missing_parents()) |
746 | + frozenset([(b'missing-parent',)]), index.get_missing_parents()) |
747 | |
748 | def test_track_external_parent_refs(self): |
749 | g_index = self.make_g_index('empty', 1, []) |
750 | @@ -734,19 +712,19 @@ |
751 | add_callback=mod_index.add_nodes, |
752 | track_external_parent_refs=True) |
753 | index.add_records([ |
754 | - (('new-key',), '2 10 2 10', [(('parent-1',), ('parent-2',))])]) |
755 | + ((b'new-key',), b'2 10 2 10', [((b'parent-1',), (b'parent-2',))])]) |
756 | self.assertEqual( |
757 | - frozenset([('parent-1',), ('parent-2',)]), |
758 | + frozenset([(b'parent-1',), (b'parent-2',)]), |
759 | index.get_missing_parents()) |
760 | |
761 | def make_source_with_b(self, a_parent, path): |
762 | source = self.make_test_vf(True, dir=path) |
763 | - source.add_lines(('a',), (), ['lines\n']) |
764 | + source.add_lines((b'a',), (), [b'lines\n']) |
765 | if a_parent: |
766 | - b_parents = (('a',),) |
767 | + b_parents = ((b'a',),) |
768 | else: |
769 | b_parents = () |
770 | - source.add_lines(('b',), b_parents, ['lines\n']) |
771 | + source.add_lines((b'b',), b_parents, [b'lines\n']) |
772 | return source |
773 | |
774 | def do_inconsistent_inserts(self, inconsistency_fatal): |
775 | @@ -755,7 +733,7 @@ |
776 | for x in range(2): |
777 | source = self.make_source_with_b(x==1, 'source%s' % x) |
778 | target.insert_record_stream(source.get_record_stream( |
779 | - [('b',)], 'unordered', False)) |
780 | + [(b'b',)], 'unordered', False)) |
781 | |
782 | def test_inconsistent_redundant_inserts_warn(self): |
783 | """Should not insert a record that is already present.""" |
784 | @@ -768,22 +746,24 @@ |
785 | self.do_inconsistent_inserts(inconsistency_fatal=False) |
786 | finally: |
787 | trace.warning = _trace_warning |
788 | - self.assertEqual(["inconsistent details in skipped record: ('b',)" |
789 | - " ('42 32 0 8', ((),)) ('74 32 0 8', ((('a',),),))"], |
790 | - warnings) |
791 | + self.assertContainsRe( |
792 | + "\n".join(warnings), |
793 | + r"^inconsistent details in skipped record: \(b?'b',\)" |
794 | + r" \(b?'42 32 0 8', \(\(\),\)\)" |
795 | + r" \(b?'74 32 0 8', \(\(\(b?'a',\),\),\)\)$") |
796 | |
797 | def test_inconsistent_redundant_inserts_raises(self): |
798 | e = self.assertRaises(knit.KnitCorrupt, self.do_inconsistent_inserts, |
799 | inconsistency_fatal=True) |
800 | - self.assertContainsRe(str(e), "Knit.* corrupt: inconsistent details" |
801 | - " in add_records:" |
802 | - " \\('b',\\) \\('42 32 0 8', \\(\\(\\),\\)\\) \\('74 32" |
803 | - " 0 8', \\(\\(\\('a',\\),\\),\\)\\)") |
804 | + self.assertContainsRe(str(e), r"Knit.* corrupt: inconsistent details" |
805 | + r" in add_records:" |
806 | + r" \(b?'b',\) \(b?'42 32 0 8', \(\(\),\)\)" |
807 | + r" \(b?'74 32 0 8', \(\(\(b?'a',\),\),\)\)") |
808 | |
809 | def test_clear_cache(self): |
810 | vf = self.make_source_with_b(True, 'source') |
811 | vf.writer.end() |
812 | - for record in vf.get_record_stream([('a',), ('b',)], 'unordered', |
813 | + for record in vf.get_record_stream([(b'a',), (b'b',)], 'unordered', |
814 | True): |
815 | pass |
816 | self.assertTrue(len(vf._group_cache) > 0) |
817 | @@ -908,8 +888,8 @@ |
818 | (read_memo1, groupcompress.GroupCompressBlock()), |
819 | (read_memo2, groupcompress.GroupCompressBlock())]) |
820 | locations = { |
821 | - ('key1',): (read_memo1 + (None, None), None, None, None), |
822 | - ('key2',): (read_memo2 + (None, None), None, None, None)} |
823 | + ('key1',): (read_memo1 + (0, 0), None, None, None), |
824 | + ('key2',): (read_memo2 + (0, 0), None, None, None)} |
825 | batcher = groupcompress._BatchingBlockFetcher(gcvf, locations) |
826 | batcher.add_key(('key1',)) |
827 | batcher.add_key(('key2',)) |
828 | @@ -929,7 +909,7 @@ |
829 | gcvf = StubGCVF() |
830 | gcvf._group_cache[read_memo] = fake_block |
831 | locations = { |
832 | - ('key',): (read_memo + (None, None), None, None, None)} |
833 | + ('key',): (read_memo + (0, 0), None, None, None)} |
834 | batcher = groupcompress._BatchingBlockFetcher(gcvf, locations) |
835 | batcher.add_key(('key',)) |
836 | self.assertEqual([], list(batcher.yield_factories())) |
837 | @@ -942,20 +922,20 @@ |
838 | class TestLazyGroupCompress(tests.TestCaseWithTransport): |
839 | |
840 | _texts = { |
841 | - ('key1',): "this is a text\n" |
842 | - "with a reasonable amount of compressible bytes\n" |
843 | - "which can be shared between various other texts\n", |
844 | - ('key2',): "another text\n" |
845 | - "with a reasonable amount of compressible bytes\n" |
846 | - "which can be shared between various other texts\n", |
847 | - ('key3',): "yet another text which won't be extracted\n" |
848 | - "with a reasonable amount of compressible bytes\n" |
849 | - "which can be shared between various other texts\n", |
850 | - ('key4',): "this will be extracted\n" |
851 | - "but references most of its bytes from\n" |
852 | - "yet another text which won't be extracted\n" |
853 | - "with a reasonable amount of compressible bytes\n" |
854 | - "which can be shared between various other texts\n", |
855 | + (b'key1',): b"this is a text\n" |
856 | + b"with a reasonable amount of compressible bytes\n" |
857 | + b"which can be shared between various other texts\n", |
858 | + (b'key2',): b"another text\n" |
859 | + b"with a reasonable amount of compressible bytes\n" |
860 | + b"which can be shared between various other texts\n", |
861 | + (b'key3',): b"yet another text which won't be extracted\n" |
862 | + b"with a reasonable amount of compressible bytes\n" |
863 | + b"which can be shared between various other texts\n", |
864 | + (b'key4',): b"this will be extracted\n" |
865 | + b"but references most of its bytes from\n" |
866 | + b"yet another text which won't be extracted\n" |
867 | + b"with a reasonable amount of compressible bytes\n" |
868 | + b"which can be shared between various other texts\n", |
869 | } |
870 | def make_block(self, key_to_text): |
871 | """Create a GroupCompressBlock, filling it with the given texts.""" |
872 | @@ -983,26 +963,26 @@ |
873 | def test_get_fulltexts(self): |
874 | locations, block = self.make_block(self._texts) |
875 | manager = groupcompress._LazyGroupContentManager(block) |
876 | - self.add_key_to_manager(('key1',), locations, block, manager) |
877 | - self.add_key_to_manager(('key2',), locations, block, manager) |
878 | + self.add_key_to_manager((b'key1',), locations, block, manager) |
879 | + self.add_key_to_manager((b'key2',), locations, block, manager) |
880 | result_order = [] |
881 | for record in manager.get_record_stream(): |
882 | result_order.append(record.key) |
883 | text = self._texts[record.key] |
884 | self.assertEqual(text, record.get_bytes_as('fulltext')) |
885 | - self.assertEqual([('key1',), ('key2',)], result_order) |
886 | + self.assertEqual([(b'key1',), (b'key2',)], result_order) |
887 | |
888 | # If we build the manager in the opposite order, we should get them |
889 | # back in the opposite order |
890 | manager = groupcompress._LazyGroupContentManager(block) |
891 | - self.add_key_to_manager(('key2',), locations, block, manager) |
892 | - self.add_key_to_manager(('key1',), locations, block, manager) |
893 | + self.add_key_to_manager((b'key2',), locations, block, manager) |
894 | + self.add_key_to_manager((b'key1',), locations, block, manager) |
895 | result_order = [] |
896 | for record in manager.get_record_stream(): |
897 | result_order.append(record.key) |
898 | text = self._texts[record.key] |
899 | self.assertEqual(text, record.get_bytes_as('fulltext')) |
900 | - self.assertEqual([('key2',), ('key1',)], result_order) |
901 | + self.assertEqual([(b'key2',), (b'key1',)], result_order) |
902 | |
903 | def test__wire_bytes_no_keys(self): |
904 | locations, block = self.make_block(self._texts) |
905 | @@ -1012,13 +992,13 @@ |
906 | # We should have triggered a strip, since we aren't using any content |
907 | stripped_block = manager._block.to_bytes() |
908 | self.assertTrue(block_length > len(stripped_block)) |
909 | - empty_z_header = zlib.compress('') |
910 | - self.assertEqual('groupcompress-block\n' |
911 | - '8\n' # len(compress('')) |
912 | - '0\n' # len('') |
913 | - '%d\n'# compressed block len |
914 | - '%s' # zheader |
915 | - '%s' # block |
916 | + empty_z_header = zlib.compress(b'') |
917 | + self.assertEqual(b'groupcompress-block\n' |
918 | + b'8\n' # len(compress('')) |
919 | + b'0\n' # len('') |
920 | + b'%d\n'# compressed block len |
921 | + b'%s' # zheader |
922 | + b'%s' # block |
923 | % (len(stripped_block), empty_z_header, |
924 | stripped_block), |
925 | wire_bytes) |
926 | @@ -1026,32 +1006,32 @@ |
927 | def test__wire_bytes(self): |
928 | locations, block = self.make_block(self._texts) |
929 | manager = groupcompress._LazyGroupContentManager(block) |
930 | - self.add_key_to_manager(('key1',), locations, block, manager) |
931 | - self.add_key_to_manager(('key4',), locations, block, manager) |
932 | + self.add_key_to_manager((b'key1',), locations, block, manager) |
933 | + self.add_key_to_manager((b'key4',), locations, block, manager) |
934 | block_bytes = block.to_bytes() |
935 | wire_bytes = manager._wire_bytes() |
936 | (storage_kind, z_header_len, header_len, |
937 | - block_len, rest) = wire_bytes.split('\n', 4) |
938 | + block_len, rest) = wire_bytes.split(b'\n', 4) |
939 | z_header_len = int(z_header_len) |
940 | header_len = int(header_len) |
941 | block_len = int(block_len) |
942 | - self.assertEqual('groupcompress-block', storage_kind) |
943 | + self.assertEqual(b'groupcompress-block', storage_kind) |
944 | self.assertEqual(34, z_header_len) |
945 | self.assertEqual(26, header_len) |
946 | self.assertEqual(len(block_bytes), block_len) |
947 | z_header = rest[:z_header_len] |
948 | header = zlib.decompress(z_header) |
949 | self.assertEqual(header_len, len(header)) |
950 | - entry1 = locations[('key1',)] |
951 | - entry4 = locations[('key4',)] |
952 | - self.assertEqualDiff('key1\n' |
953 | - '\n' # no parents |
954 | - '%d\n' # start offset |
955 | - '%d\n' # end offset |
956 | - 'key4\n' |
957 | - '\n' |
958 | - '%d\n' |
959 | - '%d\n' |
960 | + entry1 = locations[(b'key1',)] |
961 | + entry4 = locations[(b'key4',)] |
962 | + self.assertEqualDiff(b'key1\n' |
963 | + b'\n' # no parents |
964 | + b'%d\n' # start offset |
965 | + b'%d\n' # end offset |
966 | + b'key4\n' |
967 | + b'\n' |
968 | + b'%d\n' |
969 | + b'%d\n' |
970 | % (entry1[0], entry1[1], |
971 | entry4[0], entry4[1]), |
972 | header) |
973 | @@ -1061,10 +1041,10 @@ |
974 | def test_from_bytes(self): |
975 | locations, block = self.make_block(self._texts) |
976 | manager = groupcompress._LazyGroupContentManager(block) |
977 | - self.add_key_to_manager(('key1',), locations, block, manager) |
978 | - self.add_key_to_manager(('key4',), locations, block, manager) |
979 | + self.add_key_to_manager((b'key1',), locations, block, manager) |
980 | + self.add_key_to_manager((b'key4',), locations, block, manager) |
981 | wire_bytes = manager._wire_bytes() |
982 | - self.assertStartsWith(wire_bytes, 'groupcompress-block\n') |
983 | + self.assertStartsWith(wire_bytes, b'groupcompress-block\n') |
984 | manager = groupcompress._LazyGroupContentManager.from_bytes(wire_bytes) |
985 | self.assertIsInstance(manager, groupcompress._LazyGroupContentManager) |
986 | self.assertEqual(2, len(manager._factories)) |
987 | @@ -1074,7 +1054,7 @@ |
988 | result_order.append(record.key) |
989 | text = self._texts[record.key] |
990 | self.assertEqual(text, record.get_bytes_as('fulltext')) |
991 | - self.assertEqual([('key1',), ('key4',)], result_order) |
992 | + self.assertEqual([(b'key1',), (b'key4',)], result_order) |
993 | |
994 | def test__check_rebuild_no_changes(self): |
995 | block, manager = self.make_block_and_full_manager(self._texts) |
996 | @@ -1085,14 +1065,14 @@ |
997 | locations, block = self.make_block(self._texts) |
998 | manager = groupcompress._LazyGroupContentManager(block) |
999 | # Request just the first key, which should trigger a 'strip' action |
1000 | - self.add_key_to_manager(('key1',), locations, block, manager) |
1001 | + self.add_key_to_manager((b'key1',), locations, block, manager) |
1002 | manager._check_rebuild_block() |
1003 | self.assertIsNot(block, manager._block) |
1004 | self.assertTrue(block._content_length > manager._block._content_length) |
1005 | # We should be able to still get the content out of this block, though |
1006 | # it should only have 1 entry |
1007 | for record in manager.get_record_stream(): |
1008 | - self.assertEqual(('key1',), record.key) |
1009 | + self.assertEqual((b'key1',), record.key) |
1010 | self.assertEqual(self._texts[record.key], |
1011 | record.get_bytes_as('fulltext')) |
1012 | |
1013 | @@ -1100,12 +1080,12 @@ |
1014 | locations, block = self.make_block(self._texts) |
1015 | manager = groupcompress._LazyGroupContentManager(block) |
1016 | # Request a small key in the middle should trigger a 'rebuild' |
1017 | - self.add_key_to_manager(('key4',), locations, block, manager) |
1018 | + self.add_key_to_manager((b'key4',), locations, block, manager) |
1019 | manager._check_rebuild_block() |
1020 | self.assertIsNot(block, manager._block) |
1021 | self.assertTrue(block._content_length > manager._block._content_length) |
1022 | for record in manager.get_record_stream(): |
1023 | - self.assertEqual(('key4',), record.key) |
1024 | + self.assertEqual((b'key4',), record.key) |
1025 | self.assertEqual(self._texts[record.key], |
1026 | record.get_bytes_as('fulltext')) |
1027 | |
1028 | @@ -1145,8 +1125,8 @@ |
1029 | get_compressor_settings=lambda: dict(max_bytes_to_index=32)) |
1030 | gc = manager._make_group_compressor() |
1031 | self.assertEqual(32, gc._delta_index._max_bytes_to_index) |
1032 | - self.add_key_to_manager(('key3',), locations, old_block, manager) |
1033 | - self.add_key_to_manager(('key4',), locations, old_block, manager) |
1034 | + self.add_key_to_manager((b'key3',), locations, old_block, manager) |
1035 | + self.add_key_to_manager((b'key4',), locations, old_block, manager) |
1036 | action, last_byte, total_bytes = manager._check_rebuild_action() |
1037 | self.assertEqual('rebuild', action) |
1038 | manager._rebuild_block() |
1039 | @@ -1173,14 +1153,14 @@ |
1040 | |
1041 | def test_check_is_well_utilized_mixed_keys(self): |
1042 | texts = {} |
1043 | - f1k1 = ('f1', 'k1') |
1044 | - f1k2 = ('f1', 'k2') |
1045 | - f2k1 = ('f2', 'k1') |
1046 | - f2k2 = ('f2', 'k2') |
1047 | - texts[f1k1] = self._texts[('key1',)] |
1048 | - texts[f1k2] = self._texts[('key2',)] |
1049 | - texts[f2k1] = self._texts[('key3',)] |
1050 | - texts[f2k2] = self._texts[('key4',)] |
1051 | + f1k1 = (b'f1', b'k1') |
1052 | + f1k2 = (b'f1', b'k2') |
1053 | + f2k1 = (b'f2', b'k1') |
1054 | + f2k2 = (b'f2', b'k2') |
1055 | + texts[f1k1] = self._texts[(b'key1',)] |
1056 | + texts[f1k2] = self._texts[(b'key2',)] |
1057 | + texts[f2k1] = self._texts[(b'key3',)] |
1058 | + texts[f2k2] = self._texts[(b'key4',)] |
1059 | block, manager = self.make_block_and_full_manager(texts) |
1060 | self.assertFalse(manager.check_is_well_utilized()) |
1061 | manager._full_enough_block_size = block._content_length |
1062 | @@ -1194,14 +1174,14 @@ |
1063 | locations, block = self.make_block(self._texts) |
1064 | manager = groupcompress._LazyGroupContentManager(block) |
1065 | manager._full_enough_block_size = block._content_length |
1066 | - self.add_key_to_manager(('key1',), locations, block, manager) |
1067 | - self.add_key_to_manager(('key2',), locations, block, manager) |
1068 | + self.add_key_to_manager((b'key1',), locations, block, manager) |
1069 | + self.add_key_to_manager((b'key2',), locations, block, manager) |
1070 | # Just using the content from key1 and 2 is not enough to be considered |
1071 | # 'complete' |
1072 | self.assertFalse(manager.check_is_well_utilized()) |
1073 | # However if we add key3, then we have enough, as we only require 75% |
1074 | # consumption |
1075 | - self.add_key_to_manager(('key4',), locations, block, manager) |
1076 | + self.add_key_to_manager((b'key4',), locations, block, manager) |
1077 | self.assertTrue(manager.check_is_well_utilized()) |
1078 | |
1079 | |
1080 | @@ -1224,4 +1204,3 @@ |
1081 | self.assertEqual("_GCBuildDetails(('INDEX', 10, 20, 0, 5)," |
1082 | " (('parent1',), ('parent2',)))", |
1083 | repr(bd)) |
1084 | - |
1085 | |
1086 | === modified file 'breezy/tests/test_rename_map.py' |
1087 | --- breezy/tests/test_rename_map.py 2017-05-22 00:56:52 +0000 |
1088 | +++ breezy/tests/test_rename_map.py 2017-11-11 18:32:23 +0000 |
1089 | @@ -200,3 +200,18 @@ |
1090 | notes = self.captureNotes(RenameMap.guess_renames, tree, |
1091 | dry_run=False)[0] |
1092 | self.assertEqual('file => file2', ''.join(notes)) |
1093 | + |
1094 | + def test_guess_rename_handles_new_directories(self): |
1095 | + """When a file was moved into a new directory.""" |
1096 | + tree = self.make_branch_and_tree('.') |
1097 | + tree.lock_write() |
1098 | + #self.addCleanup(tree.unlock) |
1099 | + self.build_tree(['file']) |
1100 | + tree.add('file', 'file-id') |
1101 | + tree.commit('Added file') |
1102 | + os.mkdir('folder') |
1103 | + os.rename('file', 'folder/file2') |
1104 | + notes = self.captureNotes(RenameMap.guess_renames, tree)[0] |
1105 | + self.assertEqual('file => folder/file2', ''.join(notes)) |
1106 | + |
1107 | + tree.unlock() |
1108 | |
1109 | === modified file 'doc/developers/HACKING.txt' |
1110 | --- doc/developers/HACKING.txt 2017-07-30 16:59:50 +0000 |
1111 | +++ doc/developers/HACKING.txt 2017-11-11 18:32:23 +0000 |
1112 | @@ -1,14 +1,14 @@ |
1113 | ====================== |
1114 | -Bazaar Developer Guide |
1115 | +Breezy Developer Guide |
1116 | ====================== |
1117 | |
1118 | -This document describes the Bazaar internals and the development process. |
1119 | -It's meant for people interested in developing Bazaar, and some parts will |
1120 | -also be useful to people developing Bazaar plugins. |
1121 | +This document describes the Breezy internals and the development process. |
1122 | +It's meant for people interested in developing Breezy, and some parts will |
1123 | +also be useful to people developing Breezy plugins. |
1124 | |
1125 | If you have any questions or something seems to be incorrect, unclear or |
1126 | missing, please talk to us in ``irc://irc.freenode.net/#bzr``, or write to |
1127 | -the Bazaar mailing list. To propose a correction or addition to this |
1128 | +the Breezy mailing list. To propose a correction or addition to this |
1129 | document, send a merge request or new text to the mailing list. |
1130 | |
1131 | The latest developer documentation can be found online at |
1132 | @@ -17,7 +17,7 @@ |
1133 | Getting Started |
1134 | ############### |
1135 | |
1136 | -Exploring the Bazaar Platform |
1137 | +Exploring the Breezy Platform |
1138 | ============================= |
1139 | |
1140 | Before making changes, it's a good idea to explore the work already |
1141 | @@ -26,13 +26,13 @@ |
1142 | perhaps someone else has already fixed it? |
1143 | |
1144 | To answer these questions and more, take a moment to explore the |
1145 | -overall Bazaar Platform. Here are some links to browse: |
1146 | +overall Breezy Platform. Here are some links to browse: |
1147 | |
1148 | * The Plugins page on the Wiki - http://wiki.bazaar.canonical.com/BzrPlugins |
1149 | |
1150 | -* The Bazaar product family on Launchpad - https://launchpad.net/bazaar |
1151 | +* The Breezy product family on Launchpad - https://launchpad.net/breezy |
1152 | |
1153 | -* Bug Tracker for the core product - https://bugs.launchpad.net/bzr/ |
1154 | +* Bug Tracker for the core product - https://bugs.launchpad.net/brz/ |
1155 | |
1156 | If nothing else, perhaps you'll find inspiration in how other developers |
1157 | have solved their challenges. |
1158 | @@ -41,17 +41,17 @@ |
1159 | ======================= |
1160 | |
1161 | Ad-hoc performance work can also be done. One useful tool is the 'evil' debug |
1162 | -flag. For instance running ``bzr -Devil commit -m "test"`` will log a backtrace |
1163 | -to the bzr log file for every method call which triggers a slow or non-scalable |
1164 | -part of the bzr library. So checking that a given command with ``-Devil`` has |
1165 | +flag. For instance running ``brz -Devil commit -m "test"`` will log a backtrace |
1166 | +to the Breezy log file for every method call which triggers a slow or non-scalable |
1167 | +part of the breezy library. So checking that a given command with ``-Devil`` has |
1168 | no backtraces logged to the log file is a good way to find problem function |
1169 | calls that might be nested deep in the code base. |
1170 | |
1171 | Planning and Discussing Changes |
1172 | =============================== |
1173 | |
1174 | -There is a very active community around Bazaar. Mostly we meet on IRC |
1175 | -(#bzr on irc.freenode.net) and on the mailing list. To join the Bazaar |
1176 | +There is a very active community around Breezy. Mostly we meet on IRC |
1177 | +(#bzr on irc.freenode.net) and on the mailing list. To join the Breezy |
1178 | community, see http://wiki.bazaar.canonical.com/BzrSupport. |
1179 | |
1180 | If you are planning to make a change, it's a very good idea to mention it |
1181 | @@ -70,15 +70,15 @@ |
1182 | friendly, helpful and always keen to welcome newcomers. |
1183 | |
1184 | |
1185 | -Bazaar Development in a Nutshell |
1186 | +Breezy Development in a Nutshell |
1187 | ================================ |
1188 | |
1189 | .. was from http://wiki.bazaar.canonical.com/BzrGivingBack |
1190 | |
1191 | -One of the fun things about working on a version control system like Bazaar is |
1192 | +One of the fun things about working on a version control system like Breezy is |
1193 | that the users have a high level of proficiency in contributing back into |
1194 | the tool. Consider the following very brief introduction to contributing back |
1195 | -to Bazaar. More detailed instructions are in the following sections. |
1196 | +to Breezy. More detailed instructions are in the following sections. |
1197 | |
1198 | Making the change |
1199 | ----------------- |
1200 | @@ -87,20 +87,20 @@ |
1201 | copy of bzr.dev?`_.) |
1202 | :: |
1203 | |
1204 | - $ bzr init-repo ~/bzr |
1205 | + $ brz init-repo ~/bzr |
1206 | $ cd ~/bzr |
1207 | - $ bzr branch lp:bzr bzr.dev |
1208 | + $ brz branch lp:brz bzr.dev |
1209 | |
1210 | Now make your own branch:: |
1211 | |
1212 | - $ bzr branch bzr.dev 123456-my-bugfix |
1213 | + $ brz branch bzr.dev 123456-my-bugfix |
1214 | |
1215 | This will give you a branch called "123456-my-bugfix" that you can work on |
1216 | and commit in. Here, you can study the code, make a fix or a new feature. |
1217 | Feel free to commit early and often (after all, it's your branch!). |
1218 | |
1219 | Documentation improvements are an easy place to get started giving back to the |
1220 | -Bazaar project. The documentation is in the `doc/` subdirectory of the Bazaar |
1221 | +Breezy project. The documentation is in the `doc/` subdirectory of the Breezy |
1222 | source tree. |
1223 | |
1224 | When you are done, make sure that you commit your last set of changes as well! |
1225 | @@ -110,20 +110,20 @@ |
1226 | Making a Merge Proposal |
1227 | ----------------------- |
1228 | |
1229 | -The Bazaar developers use Launchpad to further enable a truly distributed |
1230 | -style of development. Anyone can propose a branch for merging into the Bazaar |
1231 | +The Breezy developers use Launchpad to further enable a truly distributed |
1232 | +style of development. Anyone can propose a branch for merging into the Breezy |
1233 | trunk. To start this process, you need to push your branch to Launchpad. To |
1234 | do this, you will need a Launchpad account and user name, e.g. |
1235 | `your_lp_username`. You can push your branch to Launchpad directly from |
1236 | -Bazaar:: |
1237 | +Breezy:: |
1238 | |
1239 | - $ bzr push lp:~<your_lp_username>/bzr/meaningful_name_here |
1240 | + $ brz push lp:~<your_lp_username>/bzr/meaningful_name_here |
1241 | |
1242 | After you have pushed your branch, you will need to propose it for merging to |
1243 | -the Bazaar trunk. Go to |
1244 | +the Breezy trunk. Go to |
1245 | <https://launchpad.net/~<your_lp_username>/bzr/meaningful_name_here> and choose |
1246 | "Propose for merging into another branch". Select "lp:bzr" to hand |
1247 | -your changes off to the Bazaar developers for review and merging. |
1248 | +your changes off to the Breezy developers for review and merging. |
1249 | |
1250 | Alternatively, after pushing you can use the ``lp-propose`` command to |
1251 | create the merge proposal. |
1252 | @@ -164,19 +164,19 @@ |
1253 | |
1254 | Making a local mirror of bzr.dev is not strictly necessary, but it means |
1255 | |
1256 | -- You can use that copy of bzr.dev as your main bzr executable, and keep it |
1257 | - up-to-date using ``bzr pull``. |
1258 | +- You can use that copy of bzr.dev as your main brz executable, and keep it |
1259 | + up-to-date using ``brz pull``. |
1260 | - Certain operations are faster, and can be done when offline. For example: |
1261 | |
1262 | - - ``bzr bundle`` |
1263 | - - ``bzr diff -r ancestor:...`` |
1264 | - - ``bzr merge`` |
1265 | + - ``brz bundle`` |
1266 | + - ``brz diff -r ancestor:...`` |
1267 | + - ``brz merge`` |
1268 | |
1269 | - When it's time to create your next branch, it's more convenient. When you |
1270 | have further contributions to make, you should do them in their own branch:: |
1271 | |
1272 | $ cd ~/bzr |
1273 | - $ bzr branch bzr.dev additional_fixes |
1274 | + $ brz branch bzr.dev additional_fixes |
1275 | $ cd additional_fixes # hack, hack, hack |
1276 | |
1277 | |
1278 | @@ -210,10 +210,10 @@ |
1279 | |
1280 | |
1281 | |
1282 | -Preparing a Sandbox for Making Changes to Bazaar |
1283 | +Preparing a Sandbox for Making Changes to Breezy |
1284 | ================================================ |
1285 | |
1286 | -Bazaar supports many ways of organising your work. See |
1287 | +Breezy supports many ways of organising your work. See |
1288 | http://wiki.bazaar.canonical.com/SharedRepositoryLayouts for a summary of the |
1289 | popular alternatives. |
1290 | |
1291 | @@ -224,10 +224,10 @@ |
1292 | * create a local copy of the main development branch (bzr.dev) by using |
1293 | this command:: |
1294 | |
1295 | - bzr branch lp:bzr bzr.dev |
1296 | + brz branch lp:brz bzr.dev |
1297 | |
1298 | * keep your copy of bzr.dev pristine (by not developing in it) and keep |
1299 | - it up to date (by using bzr pull) |
1300 | + it up to date (by using brz pull) |
1301 | |
1302 | * create a new branch off your local bzr.dev copy for each issue |
1303 | (bug or feature) you are working on. |
1304 | @@ -247,17 +247,17 @@ |
1305 | Some of the key files in this directory are: |
1306 | |
1307 | bzr |
1308 | - The command you run to start Bazaar itself. This script is pretty |
1309 | + The command you run to start Breezy itself. This script is pretty |
1310 | short and just does some checks then jumps into bzrlib. |
1311 | |
1312 | README |
1313 | - This file covers a brief introduction to Bazaar and lists some of its |
1314 | + This file covers a brief introduction to Breezy and lists some of its |
1315 | key features. |
1316 | |
1317 | setup.py |
1318 | - Installs Bazaar system-wide or to your home directory. To perform |
1319 | - development work on Bazaar it is not required to run this file - you |
1320 | - can simply run the bzr command from the top level directory of your |
1321 | + Installs Breezy system-wide or to your home directory. To perform |
1322 | + development work on Breezy it is not required to run this file - you |
1323 | + can simply run the Breezy command from the top level directory of your |
1324 | development copy. Note: That if you run setup.py this will create a |
1325 | 'build' directory in your development branch. There's nothing wrong |
1326 | with this but don't be confused by it. The build process puts a copy |
1327 | @@ -268,35 +268,35 @@ |
1328 | bzrlib |
1329 | Possibly the most exciting folder of all, bzrlib holds the main code |
1330 | base. This is where you will go to edit python files and contribute to |
1331 | - Bazaar. |
1332 | + Breezy. |
1333 | |
1334 | doc |
1335 | - Holds documentation on a whole range of things on Bazaar from the |
1336 | - origination of ideas within the project to information on Bazaar |
1337 | + Holds documentation on a whole range of things on Breezy from the |
1338 | + origination of ideas within the project to information on Breezy |
1339 | features and use cases. Within this directory there is a subdirectory |
1340 | for each translation into a human language. All the documentation |
1341 | is in the ReStructuredText markup language. |
1342 | |
1343 | doc/developers |
1344 | - Documentation specifically targeted at Bazaar and plugin developers. |
1345 | + Documentation specifically targeted at Breezy and plugin developers. |
1346 | (Including this document.) |
1347 | |
1348 | doc/en/release-notes/ |
1349 | |
1350 | - Detailed changes in each Bazaar release (there is one file by series: |
1351 | + Detailed changes in each Breezy release (there is one file by series: |
1352 | bzr-2.3.txt, bzr-2.4.txt, etc) that can affect users or plugin |
1353 | developers. |
1354 | |
1355 | doc/en/whats-new/ |
1356 | |
1357 | - High-level summaries of changes in each Bazaar release (there is one |
1358 | + High-level summaries of changes in each Breezy release (there is one |
1359 | file by series: whats-new-in-2.3.txt, whats-new-in-2.4.txt, etc). |
1360 | |
1361 | |
1362 | Automatically-generated API reference information is available at |
1363 | <http://people.canonical.com/~mwh/bzrlibapi/>. |
1364 | |
1365 | -See also the `Bazaar Architectural Overview |
1366 | +See also the `Breezy Architectural Overview |
1367 | <http://doc.bazaar.canonical.com/developers/overview.html>`_. |
1368 | |
1369 | |
1370 | @@ -307,7 +307,7 @@ |
1371 | =================== |
1372 | |
1373 | We don't change APIs in stable branches: any supported symbol in a stable |
1374 | -release of bzr must not be altered in any way that would result in |
1375 | +release of Breezy must not be altered in any way that would result in |
1376 | breaking existing code that uses it. That means that method names, |
1377 | parameter ordering, parameter names, variable and attribute names etc must |
1378 | not be changed without leaving a 'deprecated forwarder' behind. This even |
1379 | @@ -368,68 +368,22 @@ |
1380 | General Guidelines |
1381 | ================== |
1382 | |
1383 | -Copyright |
1384 | ---------- |
1385 | - |
1386 | -The copyright policy for bzr was recently made clear in this email (edited |
1387 | -for grammatical correctness):: |
1388 | - |
1389 | - The attached patch cleans up the copyright and license statements in |
1390 | - the bzr source. It also adds tests to help us remember to add them |
1391 | - with the correct text. |
1392 | - |
1393 | - We had the problem that lots of our files were "Copyright Canonical |
1394 | - Development Ltd" which is not a real company, and some other variations |
1395 | - on this theme. Also, some files were missing the GPL statements. |
1396 | - |
1397 | - I want to be clear about the intent of this patch, since copyright can |
1398 | - be a little controversial. |
1399 | - |
1400 | - 1) The big motivation for this is not to shut out the community, but |
1401 | - just to clean up all of the invalid copyright statements. |
1402 | - |
1403 | - 2) It has been the general policy for bzr that we want a single |
1404 | - copyright holder for all of the core code. This is following the model |
1405 | - set by the FSF, which makes it easier to update the code to a new |
1406 | - license in case problems are encountered. (For example, if we want to |
1407 | - upgrade the project universally to GPL v3 it is much simpler if there is |
1408 | - a single copyright holder). It also makes it clearer if copyright is |
1409 | - ever debated, there is a single holder, which makes it easier to defend |
1410 | - in court, etc. (I think the FSF position is that if you assign them |
1411 | - copyright, they can defend it in court rather than you needing to, and |
1412 | - I'm sure Canonical would do the same). |
1413 | - As such, Canonical has requested copyright assignments from all of the |
1414 | - major contributers. |
1415 | - |
1416 | - 3) If someone wants to add code and not attribute it to Canonical, there |
1417 | - is a specific list of files that are excluded from this check. And the |
1418 | - test failure indicates where that is, and how to update it. |
1419 | - |
1420 | - 4) If anyone feels that I changed a copyright statement incorrectly, just |
1421 | - let me know, and I'll be happy to correct it. Whenever you have large |
1422 | - mechanical changes like this, it is possible to make some mistakes. |
1423 | - |
1424 | - Just to reiterate, this is a community project, and it is meant to stay |
1425 | - that way. Core bzr code is copyright Canonical for legal reasons, and |
1426 | - the tests are just there to help us maintain that. |
1427 | - |
1428 | - |
1429 | Miscellaneous Topics |
1430 | #################### |
1431 | |
1432 | Debugging |
1433 | ========= |
1434 | |
1435 | -Bazaar has a few facilities to help debug problems by going into pdb_, the |
1436 | +Breezy has a few facilities to help debug problems by going into pdb_, the |
1437 | Python debugger. |
1438 | |
1439 | .. _pdb: http://docs.python.org/lib/debugger-commands.html |
1440 | |
1441 | If the ``BZR_PDB`` environment variable is set |
1442 | -then bzr will go into pdb post-mortem mode when an unhandled exception |
1443 | +then brz will go into pdb post-mortem mode when an unhandled exception |
1444 | occurs. |
1445 | |
1446 | -If you send a SIGQUIT or SIGBREAK signal to bzr then it will drop into the |
1447 | +If you send a SIGQUIT or SIGBREAK signal to brz then it will drop into the |
1448 | debugger immediately. SIGQUIT can be generated by pressing Ctrl-\\ on |
1449 | Unix. SIGBREAK is generated with Ctrl-Pause on Windows (some laptops have |
1450 | this as Fn-Pause). You can continue execution by typing ``c``. This can |
1451 | @@ -446,7 +400,7 @@ |
1452 | Debug Flags |
1453 | =========== |
1454 | |
1455 | -Bazaar accepts some global options starting with ``-D`` such as |
1456 | +Breezy accepts some global options starting with ``-D`` such as |
1457 | ``-Dhpss``. These set a value in `bzrlib.debug.debug_flags`, and |
1458 | typically cause more information to be written to the trace file. Most |
1459 | `mutter` calls should be guarded by a check of those flags so that we |
1460 | @@ -454,7 +408,7 @@ |
1461 | |
1462 | Debug flags may have effects other than just emitting trace messages. |
1463 | |
1464 | -Run ``bzr help global-options`` to see them all. |
1465 | +Run ``brz help global-options`` to see them all. |
1466 | |
1467 | These flags may also be set as a comma-separated list in the |
1468 | ``debug_flags`` option in e.g. ``~/.config/breezy/breezy.conf``. (Note |
1469 | @@ -478,7 +432,7 @@ |
1470 | Unicode and Encoding Support |
1471 | ============================ |
1472 | |
1473 | -This section discusses various techniques that Bazaar uses to handle |
1474 | +This section discusses various techniques that Breezy uses to handle |
1475 | characters that are outside the ASCII set. |
1476 | |
1477 | ``Command.outf`` |
1478 | @@ -498,15 +452,15 @@ |
1479 | marker (typically '?'), and no exception will be raised. This is for |
1480 | any command which generates text for the user to review, rather than |
1481 | for automated processing. |
1482 | - For example: ``bzr log`` should not fail if one of the entries has text |
1483 | + For example: ``brz log`` should not fail if one of the entries has text |
1484 | that cannot be displayed. |
1485 | |
1486 | strict |
1487 | Attempting to print an unprintable character will cause a UnicodeError. |
1488 | This is for commands that are intended more as scripting support, rather |
1489 | than plain user review. |
1490 | - For example: ``bzr ls`` is designed to be used with shell scripting. One |
1491 | - use would be ``bzr ls --null --unknowns | xargs -0 rm``. If ``bzr`` |
1492 | + For example: ``brz ls`` is designed to be used with shell scripting. One |
1493 | + use would be ``brz ls --null --unknowns | xargs -0 rm``. If ``bzr`` |
1494 | printed a filename with a '?', the wrong file could be deleted. (At the |
1495 | very least, the correct file would not be deleted). An error is used to |
1496 | indicate that the requested action could not be performed. |
1497 | @@ -514,7 +468,7 @@ |
1498 | exact |
1499 | Do not attempt to automatically convert Unicode strings. This is used |
1500 | for commands that must handle conversion themselves. |
1501 | - For example: ``bzr diff`` needs to translate Unicode paths, but should |
1502 | + For example: ``brz diff`` needs to translate Unicode paths, but should |
1503 | not change the exact text of the contents of the files. |
1504 | |
1505 | |
1506 | @@ -540,7 +494,7 @@ |
1507 | * User with C compiler |
1508 | * Developers |
1509 | |
1510 | -The recommended way to install bzr is to have a C compiler so that the |
1511 | +The recommended way to install Breezy is to have a C compiler so that the |
1512 | extensions can be built, but if no C compiler is present, the pure python |
1513 | versions we supply will work, though more slowly. |
1514 | |
1515 | @@ -572,14 +526,14 @@ |
1516 | What is a Core Developer? |
1517 | ------------------------- |
1518 | |
1519 | -While everyone in the Bazaar community is welcome and encouraged to |
1520 | +While everyone in the Breezy community is welcome and encouraged to |
1521 | propose and submit changes, a smaller team is reponsible for pulling those |
1522 | changes together into a cohesive whole. In addition to the general developer |
1523 | stuff covered above, "core" developers have responsibility for: |
1524 | |
1525 | * reviewing changes |
1526 | * planning releases |
1527 | -* managing releases (see `Releasing Bazaar <http://doc.bazaar.canonical.com/developers/releasing.html>`_) |
1528 | +* managing releases (see `Releasing Breezy <http://doc.bazaar.canonical.com/developers/releasing.html>`_) |
1529 | |
1530 | .. note:: |
1531 | Removing barriers to community participation is a key reason for adopting |
1532 | |
1533 | === added file 'doc/developers/branding.txt' |
1534 | --- doc/developers/branding.txt 1970-01-01 00:00:00 +0000 |
1535 | +++ doc/developers/branding.txt 2017-11-11 18:32:23 +0000 |
1536 | @@ -0,0 +1,14 @@ |
1537 | +Breezy branding |
1538 | +=============== |
1539 | + |
1540 | +``Breezy`` (with that capitalisation) is the name of the project and our current implementation. |
1541 | + |
1542 | +``breezy`` is the name of the Python package. |
1543 | + |
1544 | +``brz`` is the command line tool. |
1545 | + |
1546 | +``Bazaar`` is the name of the old project, as well as the name of the formats. |
1547 | + |
1548 | +``bzr`` is the name of the old binary. |
1549 | + |
1550 | +Slogan: "Like bzr, but with more b-s in" |
1551 | |
1552 | === modified file 'doc/developers/bug-handling.txt' |
1553 | --- doc/developers/bug-handling.txt 2011-05-04 10:45:00 +0000 |
1554 | +++ doc/developers/bug-handling.txt 2017-11-11 18:32:23 +0000 |
1555 | @@ -1,46 +1,46 @@ |
1556 | *********************** |
1557 | -Tracking Bugs in Bazaar |
1558 | +Tracking Bugs in Breezy |
1559 | *********************** |
1560 | |
1561 | -This document describes the bug-tracking processes for developing Bazaar |
1562 | -itself. Bugs in Bazaar are recorded in Launchpad. |
1563 | +This document describes the bug-tracking processes for developing Breezy |
1564 | +itself. Bugs in Breezy are recorded in Launchpad. |
1565 | |
1566 | |
1567 | See also: |
1568 | |
1569 | -* `Bazaar Developer Documents <index.html>`_. |
1570 | - |
1571 | -* `The Bazaar Development Cycle <cycle.html>`_. |
1572 | - |
1573 | -* `The Bazaar User Guide <../en/user-guide/index.html>`_ -- for |
1574 | - information on integrating Bazaar with other bug trackers. |
1575 | +* `Breezy Developer Documents <index.html>`_. |
1576 | + |
1577 | +* `The Breezy Development Cycle <cycle.html>`_. |
1578 | + |
1579 | +* `The Breezy User Guide <../en/user-guide/index.html>`_ -- for |
1580 | + information on integrating Breezy with other bug trackers. |
1581 | |
1582 | |
1583 | Links |
1584 | ***** |
1585 | |
1586 | -* `bzr bugs home page <https://bugs.launchpad.net/bzr>`_. |
1587 | - |
1588 | -* `Critical bugs <https://bugs.launchpad.net/bzr/+bugs?search=Search&field.importance=Critical&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed>`_. |
1589 | - |
1590 | -* `Open bugs by importance <https://bugs.launchpad.net/bzr/+bugs>`_. |
1591 | +* `Breezy bugs home page <https://bugs.launchpad.net/brz>`_. |
1592 | + |
1593 | +* `Critical bugs <https://bugs.launchpad.net/brz/+bugs?search=Search&field.importance=Critical&field.status=New&field.status=Incomplete&field.status=Confirmed&field.status=Triaged&field.status=In+Progress&field.status=Fix+Committed>`_. |
1594 | + |
1595 | +* `Open bugs by importance <https://bugs.launchpad.net/brz/+bugs>`_. |
1596 | |
1597 | * `Open bugs most recently changed first |
1598 | - <https://bugs.launchpad.net/bzr/+bugs?field.searchtext=&orderby=-date_last_updated&search=Search&field.status%3Alist=NEW&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.status%3Alist=FIXCOMMITTED&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_package=>`_. |
1599 | + <https://bugs.launchpad.net/brz/+bugs?field.searchtext=&orderby=-date_last_updated&search=Search&field.status%3Alist=NEW&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.status%3Alist=CONFIRMED&field.status%3Alist=TRIAGED&field.status%3Alist=INPROGRESS&field.status%3Alist=FIXCOMMITTED&field.assignee=&field.bug_reporter=&field.omit_dupes=on&field.has_patch=&field.has_no_package=>`_. |
1600 | |
1601 | -* `Most commonly duplicated bugs <http://tinyurl.com/bzr-bugs-by-dupes>`_. |
1602 | +* `Most commonly duplicated bugs <http://tinyurl.com/brz-bugs-by-dupes>`_. |
1603 | |
1604 | |
1605 | Generalities |
1606 | ************ |
1607 | |
1608 | -Anyone involved with Bazaar is welcome to contribute to managing our bug |
1609 | +Anyone involved with Breezy is welcome to contribute to managing our bug |
1610 | reports. **Edit boldly**: try to help users out, assess importance or improve |
1611 | the bug description or status. Other people will see the bugs: it's |
1612 | better to have 20 of them processed and later change the status of a |
1613 | couple than to leave them lie. |
1614 | |
1615 | -When you file a bug as a Bazaar developer or active user, if you feel |
1616 | +When you file a bug as a Breezy developer or active user, if you feel |
1617 | confident in doing so, make an assessment of status and importance at the |
1618 | time you file it, rather than leaving it for someone else. It's more |
1619 | efficient to change the importance if someone else feels it's higher or |
1620 | @@ -143,17 +143,16 @@ |
1621 | progress on the bug without that information. The bug will expire if |
1622 | it remains in this state for two months. |
1623 | Confirmed |
1624 | + This bug has been confirmed by at least one other person (developer or otherwise). |
1625 | +Triaged |
1626 | The bug report has been seen by a developer and we agree it's a bug. |
1627 | - You don't have to reproduce the bug to mark it Confirmed. (Generally |
1628 | + You don't have to reproduce the bug to mark it Triaged. (Generally |
1629 | it's not a good idea for a developer to spend time reproducing the bug |
1630 | until they're going to work on it.) |
1631 | -Triaged |
1632 | - We don't use this status. If it is set, it means the same as |
1633 | - Confirmed. |
1634 | In Progress |
1635 | Someone has started working on this. We can deliver the value of the |
1636 | - work already done by finishing and shipping the fix. |
1637 | - |
1638 | + work already done by finishing and shipping the fix. |
1639 | + |
1640 | The bug keeps this state from the time someone does non-trivial |
1641 | analysis, until the fix is merged to a release or trunk branch (when |
1642 | it is Fix Released), or until they give up on it (back to New or |
1643 | @@ -169,15 +168,15 @@ |
1644 | Don't use this. If set on old bug, it probably means In Progress, |
1645 | with the fix waiting for review. See Launchpad `bug 163694`_. |
1646 | Fix Released |
1647 | - The fix for this bug is now in the bzr branch that this task is for. |
1648 | - The branch for the default task on a bug is bzr.dev. |
1649 | - |
1650 | + The fix for this bug is now in the Breezy branch that this task is for. |
1651 | + The branch for the default task on a bug is trunk. |
1652 | + |
1653 | We use this value even though the fix may not have been been included |
1654 | in a release yet because all the developer activity around it is |
1655 | complete and we want to both avoid bug spam when releases happen, and |
1656 | keep the list of bugs that developers see when they look at the bug |
1657 | - tracker trimmed to those that require action. |
1658 | - |
1659 | + tracker trimmed to those that require action. |
1660 | + |
1661 | When setting a bug task to fix released, the bug target milestone |
1662 | should be set to the release the fix will be included in (or was |
1663 | included in, if you are updating an old bug). Don't spend too much |
1664 | @@ -191,14 +190,14 @@ |
1665 | ************** |
1666 | |
1667 | Critical |
1668 | - This is a serious bug that could cause data loss, stop bzr being |
1669 | + This is a serious bug that could cause data loss, stop Breezy being |
1670 | usable in an important case, or represents a regression in something |
1671 | previously working. We should fix critical bugs before doing other |
1672 | work, or seriously consider whether the bug is really critical |
1673 | or whether the other change is more urgent. |
1674 | High |
1675 | This is a bug that can seriously interfere with people's use of |
1676 | - Bazaar. We should seriously consider fixing these bugs before |
1677 | + Breezy. We should seriously consider fixing these bugs before |
1678 | working on new features. |
1679 | Medium |
1680 | A regular bug. We'd like to fix them, but there may be a long delay. |
1681 | @@ -228,7 +227,7 @@ |
1682 | *************** |
1683 | |
1684 | It's possible to target a bug to a milestone, eg |
1685 | -<https://bugs.launchpad.net/bzr/+milestone/1.16>. We use this to help the |
1686 | +<https://bugs.launchpad.net/brz/+milestone/1.16>. We use this to help the |
1687 | release manager know what **must** be merged to make the release. |
1688 | |
1689 | Therefore, we don't target bugs that we'd like to have fixed or that could |
1690 | @@ -289,7 +288,7 @@ |
1691 | bugs for causes of VFS methods of the smart server |
1692 | |
1693 | launchpad |
1694 | - bugs about interactions with launchpad (typically this means bzrlib.plugins.launchpad). |
1695 | + bugs about interactions with launchpad (typically this means breezy.plugins.launchpad). |
1696 | |
1697 | locale |
1698 | problems using locales other than English |
1699 | @@ -304,7 +303,7 @@ |
1700 | bugs about performance problems. |
1701 | |
1702 | regression |
1703 | - bugs which represent an aspect of bzr becoming accidentally less good than it was. |
1704 | + bugs which represent an aspect of Breezy becoming accidentally less good than it was. |
1705 | |
1706 | test |
1707 | needs changes to the test framework |
1708 | @@ -313,18 +312,18 @@ |
1709 | virtual filesystem for HTTP, SFTP, etc. |
1710 | |
1711 | trivial |
1712 | - should be very easy to fix (10-20 minutes) and easily landed: typically |
1713 | + should be very easy to fix (10-20 minutes) and easily landed: typically |
1714 | just spelling errors and the like |
1715 | |
1716 | ui |
1717 | - bugs relating to the bzr user interface, e.g. confusing error messages. |
1718 | + bugs relating to the Breezy user interface, e.g. confusing error messages. |
1719 | |
1720 | win32 |
1721 | - bugs that mainly affects Windows. Also there is cygwin and win98 tags for |
1722 | + bugs that mainly affects Windows. Also there is cygwin and win98 tags for |
1723 | marking specific bugs. |
1724 | |
1725 | You can see the full list of tags in use at |
1726 | -<https://bugs.launchpad.net/bzr/+bugs>. As of September 2008 the |
1727 | -list is on the right. |
1728 | +<https://bugs.launchpad.net/brz/+bugs>. As of September 2008 the |
1729 | +list is on the right. |
1730 | |
1731 | .. vim: ft=rst |
1732 | |
1733 | === modified file 'doc/developers/case-insensitive-file-systems.txt' |
1734 | --- doc/developers/case-insensitive-file-systems.txt 2011-11-24 17:24:21 +0000 |
1735 | +++ doc/developers/case-insensitive-file-systems.txt 2017-11-11 18:32:23 +0000 |
1736 | @@ -66,7 +66,7 @@ |
1737 | accidentally creating 2 inventory items that differ only by case. |
1738 | |
1739 | * If an argument results in the creation of a *new* filename (eg, a move |
1740 | - destination), the argument will be used as specified. Bzr will create |
1741 | + destination), the argument will be used as specified. Breezy will create |
1742 | a file and inventory item that exactly matches the case specified (although |
1743 | as above, care must be taken to avoid creating two inventory items that |
1744 | differ only by case.) |
1745 | |
1746 | === modified file 'doc/developers/check.txt' |
1747 | --- doc/developers/check.txt 2010-11-12 22:43:38 +0000 |
1748 | +++ doc/developers/check.txt 2017-11-11 18:32:23 +0000 |
1749 | @@ -10,7 +10,7 @@ |
1750 | |
1751 | * Ensure that the data as recorded on disk is accessible intact and unaltered. |
1752 | * Ensure that a branch/repository/tree/whatever is ready for upgrade. |
1753 | -* Look for and report on recorded-data issues where previous bzr's, or changing |
1754 | +* Look for and report on recorded-data issues where previous Breezy's, or changing |
1755 | situations have lead so some form of inconsistency. |
1756 | * Report sufficient information for a user to either fix the issue themselves |
1757 | or report a bug that will hopefully be sufficiently detailed we can fix based |
1758 | |
1759 | === modified file 'doc/developers/code-review.txt' |
1760 | --- doc/developers/code-review.txt 2011-06-06 08:24:45 +0000 |
1761 | +++ doc/developers/code-review.txt 2017-11-11 18:32:23 +0000 |
1762 | @@ -3,7 +3,7 @@ |
1763 | |
1764 | All non-trivial code changes coming in to Bazaar are reviewed by someone else. |
1765 | |
1766 | -Anyone is welcome to review any patch. You don't need to have a full |
1767 | +Anyone is welcome to review any patch. You don't need to have a full |
1768 | understanding of the codebase to find problems in the code, the documentation, |
1769 | or the concept of the patch. |
1770 | |
1771 | @@ -11,12 +11,12 @@ |
1772 | developer, and changes from other people are reviewed by two core |
1773 | developers. Use intelligent discretion about whether the patch is trivial. |
1774 | |
1775 | -No one likes their merge requests sitting in a queue going nowhere: this |
1776 | -is pure waste. We prioritize reviewing existing proposals. |
1777 | -Canonical dedicates some staff time to providing prompt helpful reviews. |
1778 | +No one likes their merge requests sitting in a queue going nowhere: this |
1779 | +is pure waste. We prioritize reviewing existing proposals. |
1780 | +Canonical dedicates some staff time to providing prompt helpful reviews. |
1781 | (See <http://wiki.bazaar.canonical.com/PatchPilot/>.) |
1782 | |
1783 | -From late 2009 on, we do all our code reviews through Launchpad's |
1784 | +From late 2009 on, we do all our code reviews through Launchpad's |
1785 | merge proposal interface. |
1786 | |
1787 | |
1788 | @@ -85,7 +85,7 @@ |
1789 | Anyone can propose or comment on a merge proposal just by creating a |
1790 | Launchpad account. |
1791 | |
1792 | -From <https://code.launchpad.net/bzr/+activereviews> you can see all |
1793 | +From <https://code.launchpad.net/brz/+activereviews> you can see all |
1794 | currently active reviews, and choose one to comment on. This page also |
1795 | shows proposals that are now approved and should be merged by someone with |
1796 | PQM access. |
1797 | @@ -100,5 +100,5 @@ |
1798 | |
1799 | Once a merge proposal is approved and finished, it's sent to PQM (the patch |
1800 | queue manager) which will automatically test and integrate it. The recommended |
1801 | -way to start this off is by running the ``feed-pqm`` script from |
1802 | +way to start this off is by running the ``feed-pqm`` script from |
1803 | <https://launchpad.net/hydrazine/>. |
1804 | |
1805 | === modified file 'doc/developers/code-style.txt' |
1806 | --- doc/developers/code-style.txt 2017-05-21 12:29:48 +0000 |
1807 | +++ doc/developers/code-style.txt 2017-11-11 18:32:23 +0000 |
1808 | @@ -62,7 +62,7 @@ |
1809 | character on the following line. This makes it easier to add new items in |
1810 | future:: |
1811 | |
1812 | - from bzrlib.goo import ( |
1813 | + from breezy.goo import ( |
1814 | jam, |
1815 | jelly, |
1816 | marmalade, |
1817 | @@ -98,7 +98,7 @@ |
1818 | ``**kwargs`` in the prototype of a function should be used sparingly. |
1819 | It can be good on higher-order functions that decorate other functions, |
1820 | such as ``addCleanup`` or ``assertRaises``, or on functions that take only |
1821 | -(or almost only) kwargs, where any kwargs can be passed. |
1822 | +(or almost only) kwargs, where any kwargs can be passed. |
1823 | |
1824 | Otherwise, be careful: if the parameters to a function are a bit complex |
1825 | and might vary over time (e.g. the ``commit`` API) then we prefer to pass an |
1826 | @@ -133,7 +133,7 @@ |
1827 | they don't run inside hot functions. |
1828 | |
1829 | * Module names should always be given fully-qualified, |
1830 | - i.e. ``bzrlib.hashcache`` not just ``hashcache``. |
1831 | + i.e. ``breezy.hashcache`` not just ``hashcache``. |
1832 | |
1833 | |
1834 | Naming |
1835 | @@ -141,7 +141,7 @@ |
1836 | |
1837 | Functions, methods or members that are relatively private are given |
1838 | a leading underscore prefix. Names without a leading underscore are |
1839 | -public not just across modules but to programmers using bzrlib as an |
1840 | +public not just across modules but to programmers using breezy as an |
1841 | API. |
1842 | |
1843 | We prefer class names to be concatenated capital words (``TestCase``) |
1844 | @@ -193,7 +193,7 @@ |
1845 | being leaked); merely having a del method inhibits Python gc; the |
1846 | warnings appear to users and upset them; they can also break tests that |
1847 | are checking what appears on stderr. |
1848 | - |
1849 | + |
1850 | In short, just don't use ``__del__``. |
1851 | |
1852 | Cleanup methods |
1853 | @@ -201,7 +201,7 @@ |
1854 | |
1855 | Often when something has failed later code will fail too, including |
1856 | cleanups invoked from ``finally`` blocks. These secondary failures are |
1857 | -generally uninteresting compared to the original exception. ``bzrlib`` |
1858 | +generally uninteresting compared to the original exception. ``breezy`` |
1859 | has some facilities you can use to mitigate this. |
1860 | |
1861 | * In ``Command`` subclasses, prefer the ``add_cleanup`` method to using |
1862 | @@ -215,14 +215,14 @@ |
1863 | acquire/release) because there isn't a large block of code separating |
1864 | them. |
1865 | |
1866 | -* Use the ``only_raises`` decorator (from ``bzrlib.decorators``) when |
1867 | +* Use the ``only_raises`` decorator (from ``breezy.decorators``) when |
1868 | defining methods that are typically called in ``finally`` blocks, such |
1869 | as ``unlock`` methods. For example, ``@only_raises(LockNotHeld, |
1870 | LockBroken)``. All errors that are unlikely to be a knock-on failure |
1871 | from a previous failure should be allowed. |
1872 | |
1873 | * Consider using the ``OperationWithCleanups`` helper from |
1874 | - ``bzrlib.cleanup`` anywhere else you have a ``finally`` block that |
1875 | + ``breezy.cleanup`` anywhere else you have a ``finally`` block that |
1876 | might fail. |
1877 | |
1878 | |
1879 | @@ -273,25 +273,25 @@ |
1880 | Lazy Imports |
1881 | ============ |
1882 | |
1883 | -To make startup time faster, we use the ``bzrlib.lazy_import`` module to |
1884 | +To make startup time faster, we use the ``breezy.lazy_import`` module to |
1885 | delay importing modules until they are actually used. ``lazy_import`` uses |
1886 | the same syntax as regular python imports. So to import a few modules in a |
1887 | lazy fashion do:: |
1888 | |
1889 | - from bzrlib.lazy_import import lazy_import |
1890 | + from breezy.lazy_import import lazy_import |
1891 | lazy_import(globals(), """ |
1892 | import os |
1893 | import subprocess |
1894 | import sys |
1895 | import time |
1896 | |
1897 | - from bzrlib import ( |
1898 | + from breezy import ( |
1899 | errors, |
1900 | transport, |
1901 | revision as _mod_revision, |
1902 | ) |
1903 | - import bzrlib.transport |
1904 | - import bzrlib.xml5 |
1905 | + import breezy.transport |
1906 | + import breezy.xml5 |
1907 | """) |
1908 | |
1909 | At this point, all of these exist as a ``ImportReplacer`` object, ready to |
1910 | @@ -330,7 +330,7 @@ |
1911 | |
1912 | The null revision is the ancestor of all revisions. Its revno is 0, its |
1913 | revision-id is ``null:``, and its tree is the empty tree. When referring |
1914 | -to the null revision, please use ``bzrlib.revision.NULL_REVISION``. Old |
1915 | +to the null revision, please use ``breezy.revision.NULL_REVISION``. Old |
1916 | code sometimes uses ``None`` for the null revision, but this practice is |
1917 | being phased out. |
1918 | |
1919 | @@ -460,12 +460,12 @@ |
1920 | Portability Tips |
1921 | ================ |
1922 | |
1923 | -The ``bzrlib.osutils`` module has many useful helper functions, including |
1924 | +The ``breezy.osutils`` module has many useful helper functions, including |
1925 | some more portable variants of functions in the standard library. |
1926 | |
1927 | In particular, don't use ``shutil.rmtree`` unless it's acceptable for it |
1928 | to fail on Windows if some files are readonly or still open elsewhere. |
1929 | -Use ``bzrlib.osutils.rmtree`` instead. |
1930 | +Use ``breezy.osutils.rmtree`` instead. |
1931 | |
1932 | Using the ``open(..).read(..)`` or ``open(..).write(..)`` style chaining |
1933 | of methods for reading or writing file content relies on garbage collection |
1934 | @@ -489,7 +489,7 @@ |
1935 | * If importing a module, not an attribute, and the module is a top-level |
1936 | module (i.e. has no dots in the name), then it's ok to use the builtin |
1937 | ``__import__``, e.g. ``__import__(module_name)``. |
1938 | - * In all other cases, prefer ``bzrlib.pyutils.get_named_object`` to the |
1939 | + * In all other cases, prefer ``breezy.pyutils.get_named_object`` to the |
1940 | built-in ``__import__``. ``__import__`` has some subtleties and |
1941 | unintuitive behaviours that make it hard to use correctly. |
1942 | |
1943 | |
1944 | === modified file 'doc/developers/colocated-branches.txt' |
1945 | --- doc/developers/colocated-branches.txt 2010-04-12 15:28:32 +0000 |
1946 | +++ doc/developers/colocated-branches.txt 2017-11-11 18:32:23 +0000 |
1947 | @@ -41,21 +41,21 @@ |
1948 | UI Changes |
1949 | ~~~~~~~~~~ |
1950 | |
1951 | -Bazaar URLs need to have some way to address colocated branches in |
1952 | -directories that contain multiple branches. |
1953 | +Bazaar URLs need to have some way to address colocated branches in |
1954 | +directories that contain multiple branches. |
1955 | |
1956 | -Per RFC3986 we have picked the comma (",") to allow the specification of |
1957 | -colocated branch names. Comma's in path names would have to be |
1958 | -urlencoded at first to avoid ambiguity, though perhaps it would be |
1959 | +Per RFC3986 we have picked the comma (",") to allow the specification of |
1960 | +colocated branch names. Comma's in path names would have to be |
1961 | +urlencoded at first to avoid ambiguity, though perhaps it would be |
1962 | possible to support heuristics later when interpreting user-specified URLs. |
1963 | |
1964 | An example URL would be: |
1965 | |
1966 | bzr://bazaar.launchpad.net/~jelmer/bzr/bzr.dev,colo-urls |
1967 | |
1968 | -The segment after the comma will initially be interpreted as a colocated |
1969 | -branch name but we would like to keep the option to allow |
1970 | -key=value style specifications in the future and DWIM for segments that |
1971 | +The segment after the comma will initially be interpreted as a colocated |
1972 | +branch name but we would like to keep the option to allow |
1973 | +key=value style specifications in the future and DWIM for segments that |
1974 | do not contain an =. Following the RFC the comma would be interpreted within |
1975 | the scope of a path segment. In other words, in the URL: |
1976 | |
1977 | @@ -64,26 +64,26 @@ |
1978 | unstable is interpreted as the colocated branch living in the python-debian.git |
1979 | control directory; README is a path inside of the branch. |
1980 | |
1981 | -Control directories will also have the notion of an "active" branch. This is |
1982 | -the branch that is being used by a working tree, if present and the branch |
1983 | -that will be used if no explicit colocated branch is specified. The |
1984 | -active branch support makes it easier to deal with existing bzrdirs and |
1985 | -is useful when accessing foreign control directories that have the concept |
1986 | +Control directories will also have the notion of an "active" branch. This is |
1987 | +the branch that is being used by a working tree, if present and the branch |
1988 | +that will be used if no explicit colocated branch is specified. The |
1989 | +active branch support makes it easier to deal with existing bzrdirs and |
1990 | +is useful when accessing foreign control directories that have the concept |
1991 | as well. |
1992 | |
1993 | -A new command 'bzr rmbranch' needs to be added to make it possible to |
1994 | -remove colocated branches, as this won't be possible by simple |
1995 | +A new command 'bzr rmbranch' needs to be added to make it possible to |
1996 | +remove colocated branches, as this won't be possible by simple |
1997 | directory removal, at least not of a user-visible directory. |
1998 | |
1999 | Code Changes |
2000 | ~~~~~~~~~~~~ |
2001 | |
2002 | -BzrDirFormat will need a supports_colocated_branches property that |
2003 | -indicates whether a format supports the creation, removal and accessing of |
2004 | +BzrDirFormat will need a supports_colocated_branches property that |
2005 | +indicates whether a format supports the creation, removal and accessing of |
2006 | colocated branches. |
2007 | |
2008 | -Several methods on BzrDir will need to be updated to take an option branch_name |
2009 | -parameter. If this parameter is not specified or None, the active branch |
2010 | +Several methods on BzrDir will need to be updated to take an option branch_name |
2011 | +parameter. If this parameter is not specified or None, the active branch |
2012 | will be used. |
2013 | |
2014 | The methods that will have to be extended are: |
2015 | @@ -96,15 +96,15 @@ |
2016 | * BranchFormat.initialise() |
2017 | * BranchFormat.open() |
2018 | |
2019 | -A new BzrDir.list_branches() method will return all colocated branches |
2020 | -present in a control directory. |
2021 | +A new BzrDir.list_branches() method will return all colocated branches |
2022 | +present in a control directory. |
2023 | |
2024 | -Any URL interpreting methods (e.g. Branch.open) will need to be updated |
2025 | -to extract a colocated branch name and need to pass that into the |
2026 | +Any URL interpreting methods (e.g. Branch.open) will need to be updated |
2027 | +to extract a colocated branch name and need to pass that into the |
2028 | relevant methods. |
2029 | |
2030 | -Existing callers of BzrDir.{create,open,destroy}_branch() need to |
2031 | -be updated to pass in branch names and optionally be changed to use |
2032 | +Existing callers of BzrDir.{create,open,destroy}_branch() need to |
2033 | +be updated to pass in branch names and optionally be changed to use |
2034 | BzrDir.list_branches(). |
2035 | |
2036 | Schema Changes |
2037 | @@ -117,7 +117,7 @@ |
2038 | Eventually, Bazaar could easily support colocated branches by just |
2039 | creating a new branch transport for each colocated branch and have a |
2040 | "regular" branch live there. This would require something like |
2041 | -BzrDirMeta2 though. An example of this is implemented in the |
2042 | +BzrDirMeta2 though. An example of this is implemented in the |
2043 | lp:bzr-colocated plugin |
2044 | |
2045 | Further integration |
2046 | |
2047 | === renamed file 'doc/developers/new-config-rationale.txt' => 'doc/developers/config-rationale.txt' |
2048 | --- doc/developers/new-config-rationale.txt 2017-07-31 00:12:06 +0000 |
2049 | +++ doc/developers/config-rationale.txt 2017-11-11 18:32:23 +0000 |
2050 | @@ -6,12 +6,12 @@ |
2051 | ==== |
2052 | |
2053 | Not all needs can be addressed by the default values used inside bzr and |
2054 | -bzrlib, no matter how well they are chosen (and they are ;). |
2055 | +breezy, no matter how well they are chosen (and they are ;). |
2056 | |
2057 | Options that are rarely used don't deserve a corresponding command line |
2058 | switch in one or several commands. |
2059 | |
2060 | -Many parts of ``bzrlib`` depends on some constants though and the user |
2061 | +Many parts of ``breezy`` depends on some constants though and the user |
2062 | should be able to customize the behavior to suit his needs so these |
2063 | constants need to become configuration options or more generally, be easier |
2064 | to set. |
2065 | @@ -28,7 +28,7 @@ |
2066 | Current issues |
2067 | ============== |
2068 | |
2069 | -* Many parts of ``bzrlib`` declare constants and there is no way for the |
2070 | +* Many parts of ``breezy`` declare constants and there is no way for the |
2071 | user to look at or modify them (see http://pad.lv/832061). |
2072 | |
2073 | * The old design requires a configuration object to create, modify or delete |
2074 | @@ -158,7 +158,7 @@ |
2075 | transports only and the hpss implementing the corresponding verbs). |
2076 | |
2077 | * While the underlying ``ConfigObj`` implementation provides an |
2078 | - interpolation feature, the ``bzrlib`` implementation doesn't provide an |
2079 | + interpolation feature, the ``breezy`` implementation doesn't provide an |
2080 | easy handling of templates where other configuration options can be |
2081 | interpolated. Instead, ``locations.conf`` (and only it) allows for |
2082 | ``appendpath`` and ``norecurse``. (Cross-section, cross-file interpolation |
2083 | @@ -218,7 +218,7 @@ |
2084 | |
2085 | The option name space is organized by topic: |
2086 | |
2087 | -* bzrlib options are grouped by topic (``branch``, ``tree``, ``repo``) |
2088 | +* breezy options are grouped by topic (``branch``, ``tree``, ``repo``) |
2089 | |
2090 | * plugins are encouraged (but not required) to prefix their specific options |
2091 | with their name (``qbzr.`` for qbzr) |
2092 | @@ -263,7 +263,7 @@ |
2093 | Some option values can be templates and contain references to other |
2094 | options. This is especially useful to define URLs in sections shared for |
2095 | multiple branches for example. It can also be used to describe commands |
2096 | -where some parameters are set by ``bzrlib`` at runtime. |
2097 | +where some parameters are set by ``breezy`` at runtime. |
2098 | |
2099 | Since option values are text-only, and to avoid clashing with other option |
2100 | expansion (also known as interpolation) syntaxes, references are enclosed |
2101 | @@ -276,7 +276,7 @@ |
2102 | configuration applies to a given branch. |
2103 | |
2104 | The interpolation implementation should accept an additional dict so that |
2105 | -``bzrlib`` or plugins can define references that can be expanded without |
2106 | +``breezy`` or plugins can define references that can be expanded without |
2107 | being existing configuration options:: |
2108 | |
2109 | diff_command={cmd} {cmd_opts} {file_a} {file_b} |
2110 | |
2111 | === modified file 'doc/developers/content-filtering.txt' |
2112 | --- doc/developers/content-filtering.txt 2010-12-02 09:46:15 +0000 |
2113 | +++ doc/developers/content-filtering.txt 2017-11-11 18:32:23 +0000 |
2114 | @@ -37,7 +37,7 @@ |
2115 | hold the whole file in memory). There is no guarantee that the chunks |
2116 | will be aligned with line endings. Write filters are passed a context |
2117 | object through which they can obtain some information about eg which |
2118 | -file they're working on. (See ``bzrlib.filters`` docstring.) |
2119 | +file they're working on. (See ``breezy.filters`` docstring.) |
2120 | |
2121 | These are at the moment strictly *content* filters: they can't make |
2122 | changes to the tree like changing the execute bit, file types, or |
2123 | @@ -46,7 +46,7 @@ |
2124 | Conventions |
2125 | *********** |
2126 | |
2127 | -bzrlib interfaces that aren't explicitly specified to deal with the |
2128 | +breezy interfaces that aren't explicitly specified to deal with the |
2129 | convenient form should return the canonical form. Whenever we have the |
2130 | SHA1 hash of a file, it's the hash of the canonical form. |
2131 | |
2132 | @@ -142,6 +142,6 @@ |
2133 | |
2134 | * `Developer Documentation <index.html>`_ |
2135 | |
2136 | -* ``bzrlib.filters`` |
2137 | +* ``breezy.filters`` |
2138 | |
2139 | .. vim: ft=rst tw=72 |
2140 | |
2141 | === modified file 'doc/developers/contribution-quickstart.txt' |
2142 | --- doc/developers/contribution-quickstart.txt 2011-08-11 05:48:38 +0000 |
2143 | +++ doc/developers/contribution-quickstart.txt 2017-11-11 18:32:23 +0000 |
2144 | @@ -88,9 +88,9 @@ |
2145 | merge that does not yet have tests. |
2146 | |
2147 | Normally for command-line code you should look in |
2148 | -``bzrlib.tests.blackbox`` and for library code in ``bzrlib.tests``. For |
2149 | +``breezy.tests.blackbox`` and for library code in ``breezy.tests``. For |
2150 | functions on an interface for which there are multiple implementations, |
2151 | -like `Transport`, look in ``bzrlib.tests.per_transport``. |
2152 | +like `Transport`, look in ``breezy.tests.per_transport``. |
2153 | |
2154 | It's a good idea to search the tests for something related to the thing |
2155 | you're changing and you may find a test you can modify or adapt. |
2156 | |
2157 | === modified file 'doc/developers/cycle.txt' |
2158 | --- doc/developers/cycle.txt 2011-01-03 23:48:17 +0000 |
2159 | +++ doc/developers/cycle.txt 2017-11-11 18:32:23 +0000 |
2160 | @@ -1,14 +1,13 @@ |
2161 | ********************* |
2162 | -Bazaar Release Cycles |
2163 | +Breezy Release Cycles |
2164 | ********************* |
2165 | |
2166 | -:status: Current policy, as of 2010-10. |
2167 | -:blueprint: <https://blueprints.launchpad.net/bzr/+spec/6m-cycle> |
2168 | +:status: Current policy, as of 2017-11. |
2169 | |
2170 | |
2171 | Our users want easy access to bug fixes without other changes to the |
2172 | core product. They also want a Just Works experience across the full |
2173 | -Bazaar ecosystem. To deliver the first and enable the second, we're |
2174 | +Breezy ecosystem. To deliver the first and enable the second, we're |
2175 | adopting some standard process patterns: a 6 monthly release cycle and a |
2176 | stable series. These changes will also have other benefits, including |
2177 | better availability of bug fixes in OS distributions, more freedom to |
2178 | @@ -16,7 +15,7 @@ |
2179 | |
2180 | See also: |
2181 | |
2182 | -* `Bazaar Developer Document Catalog <index.html>`_ |
2183 | +* `Breezy Developer Document Catalog <index.html>`_ |
2184 | |
2185 | * `Releasing Bazaar <releasing.html>`_ -- the process for actually making |
2186 | a release or release candidate. |
2187 | @@ -25,7 +24,7 @@ |
2188 | The Process |
2189 | ************ |
2190 | |
2191 | -Bazaar will make a major release every six months, which will be supported at |
2192 | +Breezy will make a major release every six months, which will be supported at |
2193 | least until the time of the next major release and generally 18 months after |
2194 | the first final release in a series. During this support period, we'll make |
2195 | incremental releases which fix bugs, but which do not change network or disk |
2196 | @@ -193,18 +192,18 @@ |
2197 | Within a development series, the focus is on helping plugin authors keep |
2198 | up to date by giving clear error messages when an interface is removed. |
2199 | We will no longer focus on letting old plugin code work with new versions |
2200 | -of bzrlib, which is an elusive target in Python. |
2201 | +of breezy, which is an elusive target in Python. |
2202 | |
2203 | This may mean that in cases where today a plugin would keep running but |
2204 | give warnings, it will now fail altogether with an error. |
2205 | |
2206 | -In return we expect more freedom to change and cleanup bzrlib code without |
2207 | +In return we expect more freedom to change and cleanup breezy code without |
2208 | needing to keep old code around, or write extra compatibility shims, or |
2209 | have review turnarounds related to compatibility. Some changes, such as |
2210 | removing module-global variables, that are hard to do now, will be |
2211 | possible to do safely. |
2212 | |
2213 | -Discussion of plugins here includes programs that import and use bzrlib |
2214 | +Discussion of plugins here includes programs that import and use breezy |
2215 | but that aren't technically plugins. The same approach, though the |
2216 | technical considerations are different, should apply to other extensions |
2217 | such as programs that use bzr through the shell interface. |
2218 | @@ -251,7 +250,7 @@ |
2219 | |
2220 | This can be handled in various ways either at the OS packaging or the |
2221 | Python level. We don't propose to directly address it in the upstream |
2222 | -source. (For example, we will not change the bzrlib library name from one |
2223 | +source. (For example, we will not change the breezy library name from one |
2224 | release to the next.) |
2225 | |
2226 | The issue already exists with people who may want to use for example the |
2227 | |
2228 | === modified file 'doc/developers/development-repo.txt' |
2229 | --- doc/developers/development-repo.txt 2010-08-13 19:08:57 +0000 |
2230 | +++ doc/developers/development-repo.txt 2017-11-11 18:32:23 +0000 |
2231 | @@ -200,17 +200,17 @@ |
2232 | ``development`` and ``development-subtree`` formats to point to the |
2233 | new class you are creating. |
2234 | 3. Add a new development format (and tests!). Repository formats are in |
2235 | - ``bzrlib.repofmt``. You probably want to reproduce the current |
2236 | - development format from ``bzrlib.repofmt.pack_repo`` with just new |
2237 | + ``breezy.repofmt``. You probably want to reproduce the current |
2238 | + development format from ``breezy.repofmt.pack_repo`` with just new |
2239 | disk format strings, ``_get_matching_bzrdir`` and help. |
2240 | 4. Register your development format with the various registries. At the |
2241 | moment you need to update: |
2242 | |
2243 | - 1. ``bzrlib/bzrdir.py`` to register the WT/Branch/Repository |
2244 | + 1. ``breezy/bzrdir.py`` to register the WT/Branch/Repository |
2245 | collection. |
2246 | |
2247 | - 2. ``bzrlib/workingtree.py``, ``bzrlib/branch.py``, |
2248 | - ``bzrlib/repository.py``, each one maintains a direct list of |
2249 | + 2. ``breezy/workingtree.py``, ``breezy/branch.py``, |
2250 | + ``breezy/repository.py``, each one maintains a direct list of |
2251 | their respective formats. |
2252 | |
2253 | 3. For repositories, you also need to update the InterKnit1and2 |
2254 | @@ -218,11 +218,11 @@ |
2255 | non-rich-root repositories. |
2256 | |
2257 | 4. For repositories based on KnitPackRepository, you need to update |
2258 | - ``bzrlib/tests/test_pack_repository.py`` to add the class to the |
2259 | + ``breezy/tests/test_pack_repository.py`` to add the class to the |
2260 | tested permutations. |
2261 | |
2262 | 5. Alter any other things that do class based tests. The easiest way |
2263 | - to find these is a grep for Development in bzrlib - and please |
2264 | + to find these is a grep for Development in breezy - and please |
2265 | refactor as you find these to reduce the relevance this step has, |
2266 | as it should not need to exist. |
2267 | 6. Now subclass/create from scratch/whatever the live object code you |
2268 | |
2269 | === modified file 'doc/developers/documenting-changes.txt' |
2270 | --- doc/developers/documenting-changes.txt 2010-10-14 21:23:08 +0000 |
2271 | +++ doc/developers/documenting-changes.txt 2017-11-11 18:32:23 +0000 |
2272 | @@ -7,7 +7,7 @@ |
2273 | |
2274 | Changing existing behavior |
2275 | If the change will break existing command lines, or break |
2276 | - interoperability with other versions of Bazaar, mention this in |
2277 | + interoperability with other versions of Breezy, mention this in |
2278 | "External Compatibility Breaks" in NEWS, and also in "What's New". |
2279 | |
2280 | Adding a new feature, function or option |
2281 | @@ -17,7 +17,7 @@ |
2282 | |
2283 | A new hook or extension point |
2284 | These are also described in NEWS, in the hook documentation, and in |
2285 | - "What's New." Even though they might be API-only changes, the fact that |
2286 | + "What's New." Even though they might be API-only changes, the fact that |
2287 | they exist may interest users enough to write a new plugin that uses |
2288 | them. |
2289 | |
2290 | @@ -40,8 +40,8 @@ |
2291 | to testing. |
2292 | |
2293 | Purely internal changes |
2294 | - If the change has no user-visible impact and is not interesting to |
2295 | - plugin developers, it doesn't need to be mentioned in NEWS. If you're |
2296 | + If the change has no user-visible impact and is not interesting to |
2297 | + plugin developers, it doesn't need to be mentioned in NEWS. If you're |
2298 | setting a new pattern or adding a new abstraction, update the developer |
2299 | docs. |
2300 | |
2301 | |
2302 | === modified file 'doc/developers/ec2.txt' |
2303 | --- doc/developers/ec2.txt 2010-12-16 06:24:14 +0000 |
2304 | +++ doc/developers/ec2.txt 2017-11-11 18:32:23 +0000 |
2305 | @@ -1,5 +1,5 @@ |
2306 | ========================= |
2307 | -Bazaar Windows EC2 Server |
2308 | +Breezy Windows EC2 Server |
2309 | ========================= |
2310 | |
2311 | We have an Amazon EC2 virtual machine called Desolation_ for |
2312 | @@ -10,7 +10,7 @@ |
2313 | |
2314 | See also: |
2315 | |
2316 | -* `Bazaar Developer Documentation Catalog <index.html>`_. |
2317 | +* `Breezy Developer Documentation Catalog <index.html>`_. |
2318 | |
2319 | |
2320 | .. _Desolation: http://en.wikipedia.org/wiki/Desolation_Island |
2321 | @@ -31,7 +31,7 @@ |
2322 | * We keep snapshot of the OS and tool chain so that we can roll back if |
2323 | we need to. |
2324 | |
2325 | -* bzr branches and similar information are kept on stable storage that |
2326 | +* branches and similar information are kept on stable storage that |
2327 | survives rollbacks of the OS state, and that can be backed up. |
2328 | |
2329 | Later on we may try automated Windows testing in a similar setup. |
2330 | @@ -92,7 +92,7 @@ |
2331 | Preparation |
2332 | ----------- |
2333 | |
2334 | -* Be in the bzr core team. If you are interested in helping with |
2335 | +* Be in the brz core team. If you are interested in helping with |
2336 | Windows packaging, testing or development just ask. |
2337 | |
2338 | * Install the |
2339 | |
2340 | === modified file 'doc/developers/implementation-notes.txt' |
2341 | --- doc/developers/implementation-notes.txt 2010-07-07 11:21:19 +0000 |
2342 | +++ doc/developers/implementation-notes.txt 2017-11-11 18:32:23 +0000 |
2343 | @@ -10,7 +10,7 @@ |
2344 | lca_tree_merging |
2345 | |
2346 | |
2347 | -* `BTree Index Prefetch <btree_index_prefetch.html>`_ |--| How bzr decides |
2348 | +* `BTree Index Prefetch <btree_index_prefetch.html>`_ |--| How Breezy decides |
2349 | to pre-read extra nodes in the btree index. |
2350 | |
2351 | * `Computing last_modified values <last-modified.html>`_ for inventory |
2352 | |
2353 | === modified file 'doc/developers/index-plain.txt' |
2354 | --- doc/developers/index-plain.txt 2012-02-29 13:55:25 +0000 |
2355 | +++ doc/developers/index-plain.txt 2017-11-11 18:32:23 +0000 |
2356 | @@ -1,5 +1,5 @@ |
2357 | ================================= |
2358 | -Bazaar Developer Document Catalog |
2359 | +Breezy Developer Document Catalog |
2360 | ================================= |
2361 | |
2362 | |
2363 | @@ -15,45 +15,42 @@ |
2364 | (external link) |
2365 | |--| automatically generated API reference information |
2366 | |
2367 | -* `Integrating with Bazaar <http://wiki.bazaar.canonical.com/Integrating_with_Bazaar>`_ |
2368 | - (wiki) |--| a guide for writing Python programs that work with Bazaar. |
2369 | +* `Integrating with Breezy <http://wiki.bazaar.canonical.com/Integrating_with_Bazaar>`_ |
2370 | + (wiki) |--| a guide for writing Python programs that work with Breezy. |
2371 | |
2372 | * `Revision Properties <revision-properties.html>`_ |--| An application |
2373 | can set arbitrary per-revision key/value pairs to store app-specific |
2374 | data. |
2375 | |
2376 | -* `Testing <testing.html>`_ |--| Guide to writing tests for Bazaar. |
2377 | +* `Testing <testing.html>`_ |--| Guide to writing tests for Breezy. |
2378 | |
2379 | * `Code Review <code-review.html>`_. |
2380 | |
2381 | -* `Bazaar Code Style Guide <code-style.html>`_. |
2382 | +* `Breezy Code Style Guide <code-style.html>`_. |
2383 | |
2384 | * `Writing plugins <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_ |
2385 | - |--| specific advice on writing Bazaar plugins. (web link) |
2386 | + |--| specific advice on writing Breezy plugins. (web link) |
2387 | |
2388 | * `Documenting changes <documenting-changes.html>`_. |
2389 | |
2390 | Process |
2391 | ======= |
2392 | |
2393 | -* `The Bazaar Development Cycle <cycle.html>`_ |--| The monthly |
2394 | - development cycle and how to run it. |
2395 | - |
2396 | -* `Releasing Bazaar <releasing.html>`_ |--| |
2397 | - Checklist to make a release of Bazaar. |
2398 | - |
2399 | -* `Managing the Bazaar PPA <ppa.html>`_ |--| Packaging Bazaar for Ubuntu. |
2400 | +* `Releasing Breezy <releasing.html>`_ |--| |
2401 | + Checklist to make a release of Breezy. |
2402 | + |
2403 | +* `Managing the Breezy PPA <ppa.html>`_ |--| Packaging Breezy for Ubuntu. |
2404 | |
2405 | * `Giving back <http://wiki.bazaar.canonical.com/BzrGivingBack>`_ (wiki) |--| How to get |
2406 | - your changes to Bazaar integrated into a release. |
2407 | + your changes to Breezy integrated into a release. |
2408 | |
2409 | * `Profiling notes <profiling.html>`_ |--| Instructions on how to profile |
2410 | - bzr code and visualize the results. |
2411 | + brz code and visualize the results. |
2412 | |
2413 | * `EC2 resources <ec2.html>`_ |--| A team resource for |
2414 | Windows packaging and testing, and Ubuntu testing. |
2415 | |
2416 | -* `Tracking Bugs in Bazaar <bug-handling.html>`_ |--| How we use the bug |
2417 | +* `Tracking Bugs in Breezy <bug-handling.html>`_ |--| How we use the bug |
2418 | tracker. |
2419 | |
2420 | Architecture overviews |
2421 | @@ -66,13 +63,13 @@ |
2422 | ===== |
2423 | |
2424 | * `Performance roadmap <performance-roadmap.html>`_ |--| The roadmap |
2425 | - for fixing performance in bzr over the next few releases. |
2426 | + for fixing performance in brz over the next few releases. |
2427 | |
2428 | * `Co-located branches <colocated-branches.html>`_ |--| Planned(?) support |
2429 | for storing multiple branches in one file-system directory. |
2430 | |
2431 | -* `Bazaar Windows Shell Extension Options <tortoise-strategy.html>`_ |--| |
2432 | - Implmentation strategy for Bazaar Windows Shell Extensions, aka |
2433 | +* `Breezy Windows Shell Extension Options <tortoise-strategy.html>`_ |--| |
2434 | + Implementation strategy for Breezy Windows Shell Extensions, aka |
2435 | TortoiseBzr. |
2436 | |
2437 | * `CHK Optimized index <improved_chk_index.html>`_ |
2438 | @@ -88,10 +85,10 @@ |
2439 | * `Authentication ring <authentication-ring.html>`_ |--| Configuring |
2440 | authentication. |
2441 | |
2442 | -* `Bundles <bundles.html>`_ |--| All about bzr bundles. |
2443 | +* `Bundles <bundles.html>`_ |--| All about brz bundles. |
2444 | |
2445 | * `Container format <container-format.html>`_ |--| Notes on a container format |
2446 | - for streaming and storing Bazaar data. |
2447 | + for streaming and storing Breezy data. |
2448 | |
2449 | * `Groupcompress <groupcompress-design.html>`_ |--| Notes on the compression |
2450 | technology used in CHK repositories. |
2451 | @@ -114,8 +111,8 @@ |
2452 | * `Integration Guide <integration.html>`_ |--| A guide to integrate bzrlib into |
2453 | any python application. |
2454 | |
2455 | -* `Bazaar and case-insensitive file systems <case-insensitive-file-systems.html>`_ |
2456 | - |--| How Bazaar operates on case-insensitive file systems such as commonly |
2457 | +* `Breezy and case-insensitive file systems <case-insensitive-file-systems.html>`_ |
2458 | + |--| How Breezy operates on case-insensitive file systems such as commonly |
2459 | found on Windows, USB sticks, etc. |
2460 | |
2461 | * `Development repository formats <development-repo.html>`_ |--| How to |
2462 | @@ -132,7 +129,7 @@ |
2463 | Implementation notes |
2464 | ==================== |
2465 | |
2466 | -* `BTree Index Prefetch <btree_index_prefetch.html>`_ |--| How bzr decides |
2467 | +* `BTree Index Prefetch <btree_index_prefetch.html>`_ |--| How brz decides |
2468 | to pre-read extra nodes in the btree index. |
2469 | |
2470 | * `Computing last_modified values <last-modified.html>`_ for inventory |
2471 | @@ -148,7 +145,7 @@ |
2472 | |
2473 | * `dirstate <dirstate.html>`_ |--| An observation re. the dirstate file |
2474 | |
2475 | -* `"bzr update" performance analysis <update.html>`_ |--| "bzr update" |
2476 | +* `"brz update" performance analysis <update.html>`_ |--| "brz update" |
2477 | performance analysis |
2478 | |
2479 | |
2480 | |
2481 | === modified file 'doc/developers/index.txt' |
2482 | --- doc/developers/index.txt 2012-02-29 13:55:25 +0000 |
2483 | +++ doc/developers/index.txt 2017-11-11 18:32:23 +0000 |
2484 | @@ -1,5 +1,5 @@ |
2485 | ================================= |
2486 | -Bazaar Developer Document Catalog |
2487 | +Breezy Developer Document Catalog |
2488 | ================================= |
2489 | |
2490 | |
2491 | @@ -12,13 +12,12 @@ |
2492 | contribution-quickstart |
2493 | |
2494 | |
2495 | -Working on Bazaar |
2496 | +Working on Breezy |
2497 | ================= |
2498 | |
2499 | .. toctree:: |
2500 | :maxdepth: 1 |
2501 | |
2502 | - cycle |
2503 | profiling |
2504 | bug-handling |
2505 | HACKING |
2506 | @@ -27,7 +26,7 @@ |
2507 | code-style |
2508 | documenting-changes |
2509 | |
2510 | -* `Contributing to Bazaar Documentation <http://wiki.bazaar.canonical.com/ContributingToTheDocs>`_ (wiki) |
2511 | +* `Contributing to Breezy Documentation <http://wiki.bazaar.canonical.com/ContributingToTheDocs>`_ (wiki) |
2512 | |
2513 | |
2514 | Architecture overviews |
2515 | @@ -61,7 +60,7 @@ |
2516 | overview |
2517 | integration |
2518 | |
2519 | -* `Writing plugins for Bazaar <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_ (web link) |
2520 | +* `Writing plugins for Breezy <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_ (web link) |
2521 | |
2522 | * `bzrlib API reference <http://people.canonical.com/~mwh/bzrlibapi/>`_ |
2523 | (web link) |
2524 | @@ -83,8 +82,8 @@ |
2525 | Licence |
2526 | ============ |
2527 | |
2528 | -Copyright 2005-2011 Canonical Ltd. Bazaar is free software, and you |
2529 | -may use, modify and redistribute both Bazaar and this document under |
2530 | +Copyright 2005-2011 Canonical Ltd. Breezy is free software, and you |
2531 | +may use, modify and redistribute both Breezy and this document under |
2532 | the terms of the GNU General Public License version 2 or later. See |
2533 | <http://www.gnu.org/licenses/>. |
2534 | |
2535 | |
2536 | === modified file 'doc/developers/indices.txt' |
2537 | --- doc/developers/indices.txt 2007-07-15 15:40:37 +0000 |
2538 | +++ doc/developers/indices.txt 2017-11-11 18:32:23 +0000 |
2539 | @@ -7,7 +7,7 @@ |
2540 | |
2541 | :Date: 2007-07-14 |
2542 | |
2543 | -This document describes the indexing facilities within bzrlib. |
2544 | +This document describes the indexing facilities within breezy. |
2545 | |
2546 | |
2547 | .. contents:: |
2548 | @@ -33,7 +33,7 @@ |
2549 | Overview |
2550 | ======== |
2551 | |
2552 | -bzr is moving to a write-once model for repository storage in order to |
2553 | +Breezy is moving to a write-once model for repository storage in order to |
2554 | achieve lock-free repositories eventually. In order to support this, we are |
2555 | making our new index classes **immutable**. That is, one creates a new |
2556 | index in a single operation, and after that it is read only. To combine |
2557 | @@ -98,7 +98,7 @@ |
2558 | |
2559 | ``GraphIndex`` supports graph based lookups. While currently unoptimised |
2560 | for reading, the index is quite space efficient at storing the revision |
2561 | -graph index for bzr. The ``GraphIndexBuilder`` may be used to create one |
2562 | +graph index for Breezy. The ``GraphIndexBuilder`` may be used to create one |
2563 | of these indices by calling ``add_node`` until all nodes are added, then |
2564 | ``finish`` to obtain a file stream containing the index data. Multiple |
2565 | indices may be queried using the ``CombinedGraphIndex`` class. |
2566 | |
2567 | === modified file 'doc/developers/integration.txt' |
2568 | --- doc/developers/integration.txt 2017-06-10 00:17:06 +0000 |
2569 | +++ doc/developers/integration.txt 2017-11-11 18:32:23 +0000 |
2570 | @@ -1,9 +1,9 @@ |
2571 | ======================= |
2572 | -Integrating with Bazaar |
2573 | +Integrating with Breezy |
2574 | ======================= |
2575 | |
2576 | This document provides some general observations on integrating with |
2577 | -Bazaar and some recipes for typical tasks. It is intended to be useful to |
2578 | +Breezy and some recipes for typical tasks. It is intended to be useful to |
2579 | someone developing either a plugin or some other piece of software that |
2580 | integrates with bzr. If you want to know about a topic that's not covered |
2581 | here, just ask us. |
2582 | @@ -11,26 +11,26 @@ |
2583 | |
2584 | |
2585 | |
2586 | -Starting with bzrlib |
2587 | +Starting with breezy |
2588 | ==================== |
2589 | |
2590 | Within bzr |
2591 | ---------- |
2592 | |
2593 | -When using bzrlib within the ``bzr`` program (for instance as a bzr |
2594 | -plugin), bzrlib's global state is already available for use. |
2595 | +When using breezy within the ``bzr`` program (for instance as a bzr |
2596 | +plugin), breezy's global state is already available for use. |
2597 | |
2598 | From outside bzr |
2599 | ---------------- |
2600 | |
2601 | -To use bzrlib outside of ``bzr`` some global state needs to be setup. |
2602 | -bzrlib needs ways to handle user input, passwords, a place to emit |
2603 | +To use breezy outside of ``bzr`` some global state needs to be setup. |
2604 | +breezy needs ways to handle user input, passwords, a place to emit |
2605 | progress bars, logging setup appropriately for your program. The easiest |
2606 | way to set all this up in the same fashion ``bzr`` does is to call |
2607 | -``bzrlib.initialize``. |
2608 | +``breezy.initialize``. |
2609 | |
2610 | -This returns a context manager within which bzrlib functions will work |
2611 | -correctly. See the pydoc for ``bzrlib.initialize`` for more information. |
2612 | +This returns a context manager within which breezy functions will work |
2613 | +correctly. See the pydoc for ``breezy.initialize`` for more information. |
2614 | (You can get away without entering the context manager, because the setup |
2615 | work happens directly from ``initialize``.) |
2616 | |
2617 | @@ -39,7 +39,7 @@ |
2618 | |
2619 | # This sets up your ~/.bzr.log, ui factory and so on and so forth. It is |
2620 | # not safe to use as a doctest. |
2621 | - library_state = bzrlib.initialize() |
2622 | + library_state = breezy.initialize() |
2623 | library_state.__enter__() |
2624 | try: |
2625 | pass |
2626 | @@ -53,22 +53,22 @@ |
2627 | |
2628 | To run command-line commands in-process:: |
2629 | |
2630 | - from bzrlib.commands import get_command |
2631 | + from breezy.commands import get_command |
2632 | |
2633 | cmd = get_command('version') |
2634 | cmd.run([]) |
2635 | |
2636 | This will send output through the current UIFactory; you can redirect this |
2637 | -elsewhere through the parameters to `bzrlib.initialize`. |
2638 | +elsewhere through the parameters to `breezy.initialize`. |
2639 | |
2640 | |
2641 | Manipulating the Working Tree |
2642 | ============================= |
2643 | -Most objects in Bazaar are in files, named after the class they contain. |
2644 | +Most objects in Breezy are in files, named after the class they contain. |
2645 | To manipulate the Working Tree we need a valid WorkingTree object, which |
2646 | is loaded from the workingtree.py file, eg:: |
2647 | |
2648 | - from bzrlib import workingtree |
2649 | + from breezy import workingtree |
2650 | wt = workingtree.WorkingTree.open('/home/jebw/bzrtest') |
2651 | |
2652 | |
2653 | @@ -86,7 +86,7 @@ |
2654 | |
2655 | ``changes_from`` creates a Delta object showing changes:: |
2656 | |
2657 | - from bzrlib import delta |
2658 | + from breezy import delta |
2659 | changes = wt.changes_from(wt.basis_tree()) |
2660 | |
2661 | This gives us a Delta object, which has several lists of files for each type of |
2662 | @@ -186,15 +186,15 @@ |
2663 | Generating a log is, in itself, simple. Grab a branch (see below) and pass |
2664 | it to show_log together with a log formatter, eg:: |
2665 | |
2666 | - from bzrlib import log |
2667 | - from bzrlib import branch |
2668 | + from breezy import log |
2669 | + from breezy import branch |
2670 | |
2671 | b = branch.Branch.open('/path/to/bazaar/branch') |
2672 | lf = log.LongLogFormatter(to_file=sys.stdout) |
2673 | log.show_log(b, lf) |
2674 | |
2675 | |
2676 | -Three log formatters are included with bzrlib: LongLogFormatter, |
2677 | +Three log formatters are included with breezy: LongLogFormatter, |
2678 | ShortLogFormatter and LineLogFormatter. These provide long, short and |
2679 | single-line log output formats. It's also possible to write your own in |
2680 | very little code. |
2681 | @@ -239,7 +239,7 @@ |
2682 | |
2683 | To work with a branch you need a branch object, created from your branch:: |
2684 | |
2685 | - from bzrlib import branch |
2686 | + from breezy import branch |
2687 | |
2688 | b = branch.Branch.open('/home/jebw/bzrtest') |
2689 | |
2690 | @@ -249,17 +249,17 @@ |
2691 | |
2692 | To branch you create a branch object representing the branch you are |
2693 | branching from, and supply a path/url to the new branch location. |
2694 | -The following code clones the bzr.dev branch (the latest copy of the Bazaar |
2695 | +The following code clones the bzr.dev branch (the latest copy of the Breezy |
2696 | source code) - be warned it has to download 60meg so takes a while to run |
2697 | with no feedback:: |
2698 | |
2699 | - from bzrlib import branch |
2700 | + from breezy import branch |
2701 | |
2702 | b = branch.Branch.open('http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev') |
2703 | nb = b.controldir.sprout('/tmp/newBzrBranch').open_branch() |
2704 | |
2705 | |
2706 | -This provides no feedback, since Bazaar automatically uses the 'silent' UI. |
2707 | +This provides no feedback, since Breezy automatically uses the 'silent' UI. |
2708 | |
2709 | |
2710 | Pushing and pulling branches |
2711 | @@ -268,7 +268,7 @@ |
2712 | To push a branch you need to open the source and destination branches, then |
2713 | just call push with the other branch as a parameter:: |
2714 | |
2715 | - from bzrlib import branch |
2716 | + from breezy import branch |
2717 | |
2718 | b1 = branch.Branch.open('file:///home/user/mybranch') |
2719 | b2 = branch.Branch.open('http://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev') |
2720 | @@ -292,7 +292,7 @@ |
2721 | |
2722 | This performs a Lightweight checkout from an existing Branch:: |
2723 | |
2724 | - from bzrlib import bzrdir |
2725 | + from breezy import bzrdir |
2726 | |
2727 | accelerator_tree, source = bzrdir.BzrDir.open_tree_or_branch('http:URL') |
2728 | source.create_checkout('/tmp/newBzrCheckout', None, True, accelerator_tree) |
2729 | |
2730 | === modified file 'doc/developers/inventory.txt' |
2731 | --- doc/developers/inventory.txt 2010-11-12 22:08:18 +0000 |
2732 | +++ doc/developers/inventory.txt 2017-11-11 18:32:23 +0000 |
2733 | @@ -25,7 +25,7 @@ |
2734 | Serialization |
2735 | ============= |
2736 | |
2737 | -There are several variants of serialised tree shape in use by bzr. To date |
2738 | +There are several variants of serialised tree shape in use by Breezy. To date |
2739 | these have been mostly XML-based, though plugins have offered non-XML versions. |
2740 | |
2741 | dirstate |
2742 | @@ -61,12 +61,12 @@ |
2743 | 5. Allow fetch to determine the file texts that need to be pulled to ensure |
2744 | that the entire tree can be reconstructed without having to probe every |
2745 | path in the tree. |
2746 | - 6. Allow bzr to map paths to file ids without reading the entire serialised |
2747 | + 6. Allow Breezy to map paths to file ids without reading the entire serialised |
2748 | form. This is something that is used by commands such as merge PATH and |
2749 | diff -r X PATH. |
2750 | - 7. Let bzr map file ids to paths without reading the entire serialised form. |
2751 | + 7. Let Breezy map file ids to paths without reading the entire serialised form. |
2752 | This is used by commands that are presenting output to the user such as |
2753 | - loggerhead, bzr-search, log FILENAME. |
2754 | + loggerhead, brz-search, log FILENAME. |
2755 | 8. We want a strong validator for inventories which is cheap to generate. |
2756 | Specifically we should be able to create the generator for a new commit |
2757 | without processing all the data of the basis commit. |
2758 | @@ -127,7 +127,7 @@ |
2759 | |
2760 | Some key layers we have today and can look at using or tweaking are: |
2761 | |
2762 | - * Tree objects - the abstract interface bzrlib code works in |
2763 | + * Tree objects - the abstract interface breezy code works in |
2764 | * VersionedFiles - the optionally delta compressing key->bytes storage |
2765 | interface. |
2766 | * Inventory - the abstract interface that many tree operations are written in. |
2767 | @@ -503,7 +503,7 @@ |
2768 | ================= |
2769 | |
2770 | Inventory deltas and more broadly changes between trees are a significant part |
2771 | -of bzr's core operations: they are key components in status, diff, commit, |
2772 | +of Breezy's core operations: they are key components in status, diff, commit, |
2773 | and merge (although merge uses tree transform, deltas contain the changes that |
2774 | are applied to the transform). Our ability to perform a given operation depends |
2775 | on us creating consistent deltas between trees. Inconsistent deltas lead to |
2776 | |
2777 | === modified file 'doc/developers/last-modified.txt' |
2778 | --- doc/developers/last-modified.txt 2009-12-02 20:34:07 +0000 |
2779 | +++ doc/developers/last-modified.txt 2017-11-11 18:32:23 +0000 |
2780 | @@ -90,7 +90,7 @@ |
2781 | ---------------------------- |
2782 | |
2783 | Accessing a foreign branch requires synthesizing this information. |
2784 | -If last_modified is removed from a future bzr version, we will also need |
2785 | +If last_modified is removed from a future Breezy version, we will also need |
2786 | to synthesize it to pull back to earlier formats. |
2787 | |
2788 | Because last_modified is not natively stored in the foreign branches, we |
2789 | |
2790 | === modified file 'doc/developers/lca_tree_merging.txt' |
2791 | --- doc/developers/lca_tree_merging.txt 2008-09-05 02:29:34 +0000 |
2792 | +++ doc/developers/lca_tree_merging.txt 2017-11-11 18:32:23 +0000 |
2793 | @@ -47,7 +47,7 @@ |
2794 | Resolution Algorithm |
2795 | -------------------- |
2796 | |
2797 | -(This can be seen as ``bzrlib.merge.Merge3Merger._lca_multi_way``` |
2798 | +(This can be seen as ``breezy.merge.Merge3Merger._lca_multi_way``` |
2799 | |
2800 | 1. If ``THIS`` and ``OTHER`` have the same value, use it. There is no need to |
2801 | inspect any other values in this case. Either nothing was changed (all |
2802 | |
2803 | === modified file 'doc/developers/network-protocol.txt' |
2804 | --- doc/developers/network-protocol.txt 2011-11-29 14:59:18 +0000 |
2805 | +++ doc/developers/network-protocol.txt 2017-11-11 18:32:23 +0000 |
2806 | @@ -70,7 +70,7 @@ |
2807 | machine until the request can be satisfied, |
2808 | sends structured data to the protocol. |
2809 | |
2810 | -Request handlers are registered in the `bzrlib.smart.request` module. |
2811 | +Request handlers are registered in the `breezy.smart.request` module. |
2812 | |
2813 | |
2814 | Client-side |
2815 | |
2816 | === modified file 'doc/developers/overview.txt' |
2817 | --- doc/developers/overview.txt 2012-02-06 23:39:18 +0000 |
2818 | +++ doc/developers/overview.txt 2017-11-11 18:32:23 +0000 |
2819 | @@ -1,11 +1,11 @@ |
2820 | ============================= |
2821 | -Bazaar Architectural Overview |
2822 | +Breezy Architectural Overview |
2823 | ============================= |
2824 | |
2825 | -This document describes the key classes and concepts within Bazaar. It is |
2826 | -intended to be useful to people working on the Bazaar codebase, or to |
2827 | +This document describes the key classes and concepts within Breezy. It is |
2828 | +intended to be useful to people working on the Breezy codebase, or to |
2829 | people writing plugins. People writing plugins may also like to read the |
2830 | -guide to `Integrating with Bazaar <integration.html>`_ for some specific recipes. |
2831 | +guide to `Integrating with Breezy <integration.html>`_ for some specific recipes. |
2832 | |
2833 | There's some overlap between this and the `Core Concepts`_ section of the |
2834 | user guide, but this document is targetted to people interested in the |
2835 | @@ -15,7 +15,7 @@ |
2836 | |
2837 | If you have any questions, or if something seems to be incorrect, unclear |
2838 | or missing, please talk to us in ``irc://irc.freenode.net/#bzr``, write to |
2839 | -the Bazaar mailing list, or simply file a bug report. |
2840 | +the Breezy mailing list, or simply file a bug report. |
2841 | |
2842 | |
2843 | IDs and keys |
2844 | @@ -24,7 +24,7 @@ |
2845 | IDs |
2846 | === |
2847 | |
2848 | -All IDs are globally unique identifiers. Inside bzrlib they are almost |
2849 | +All IDs are globally unique identifiers. Inside breezy they are almost |
2850 | always represented as UTF-8 encoded bytestrings (i.e. ``str`` objects). |
2851 | |
2852 | The main two IDs are: |
2853 | @@ -33,12 +33,12 @@ |
2854 | ``pqm@pqm.ubuntu.com-20110201161347-ao76mv267gc1b5v2`` |
2855 | :File IDs: The unique identifier of a single file. |
2856 | |
2857 | -By convention, in the bzrlib API, parameters of methods that are expected |
2858 | +By convention, in the breezy API, parameters of methods that are expected |
2859 | to be IDs (as opposed to keys, revision numbers, or some other handle) |
2860 | will end in ``id``, e.g. ``revid`` or ``file_id``. |
2861 | |
2862 | Ids may be stored directly or they can be inferred from other |
2863 | -data. Native Bazaar formats store ids directly; foreign VCS |
2864 | +data. Native Breezy formats store ids directly; foreign VCS |
2865 | support usually generates them somehow. For example, the |
2866 | Git commit with SHA ``fb235a3be6372e40ff7f7ebbcd7905a08cb04444`` |
2867 | is referred to with the revision ID |
2868 | @@ -82,7 +82,7 @@ |
2869 | actual file. This means that lookups of file ids doesn't scale with |
2870 | the number of nested trees. |
2871 | |
2872 | -Inventory file ids are only relevant for native Bazaar formats; foreign |
2873 | +Inventory file ids are only relevant for native Breezy formats; foreign |
2874 | formats don't use inventories. |
2875 | |
2876 | Transform ids |
2877 | @@ -160,8 +160,8 @@ |
2878 | |
2879 | See also: |
2880 | |
2881 | -* `Developer guide to bzrlib transports <transports.html>`_ |
2882 | -* API docs for ``bzrlib.transport.Transport`` |
2883 | +* `Developer guide to breezy transports <transports.html>`_ |
2884 | +* API docs for ``breezy.transport.Transport`` |
2885 | |
2886 | Control directory |
2887 | ================= |
2888 | @@ -188,7 +188,7 @@ |
2889 | Trees have an inventory and parents (an ordered list of zero or more |
2890 | revision IDs). |
2891 | |
2892 | -The implementation of ``Tree`` for Bazaar's own formats is based around |
2893 | +The implementation of ``Tree`` for Breezy's own formats is based around |
2894 | ``Inventory`` objects which describe the shape of the tree. Each tree has |
2895 | at least one inventory associated with it, which is available as the |
2896 | ``root_inventory`` attribute on tree. The tree can have more inventories |
2897 | |
2898 | === modified file 'doc/developers/packrepo.txt' |
2899 | --- doc/developers/packrepo.txt 2010-11-12 22:08:18 +0000 |
2900 | +++ doc/developers/packrepo.txt 2017-11-11 18:32:23 +0000 |
2901 | @@ -10,7 +10,7 @@ |
2902 | Motivation |
2903 | ---------- |
2904 | |
2905 | -KnitPack is a new repository format for Bazaar, which is expected to be |
2906 | +KnitPack is a new repository format for Breezy, which is expected to be |
2907 | faster both locally and over the network, is usually more compact, and |
2908 | will work with more FTP servers. |
2909 | |
2910 | @@ -145,7 +145,7 @@ |
2911 | =============== |
2912 | |
2913 | Bazaar 0.92 adds a new format (experimental at first) implemented in |
2914 | -``bzrlib.repofmt.pack_repo.py``. |
2915 | +``breezy.repofmt.pack_repo.py``. |
2916 | |
2917 | This format provides a knit-like interface which is quite compatible |
2918 | with knit format repositories: you can get a VersionedFile for a |
2919 | @@ -186,7 +186,7 @@ |
2920 | compression base |
2921 | ======== ========== ======================== ========================== |
2922 | |
2923 | -Indices are accessed through the ``bzrlib.index.GraphIndex`` class. |
2924 | +Indices are accessed through the ``breezy.index.GraphIndex`` class. |
2925 | Indices are stored as sorted files on disk. Each line is one record, |
2926 | and contains: |
2927 | |
2928 | |
2929 | === added directory 'doc/developers/plans' |
2930 | === renamed file 'doc/developers/plans.txt' => 'doc/developers/plans/index.txt' |
2931 | --- doc/developers/plans.txt 2012-01-24 13:14:06 +0000 |
2932 | +++ doc/developers/plans/index.txt 2017-11-11 18:32:23 +0000 |
2933 | @@ -5,7 +5,5 @@ |
2934 | :maxdepth: 1 |
2935 | |
2936 | Performance roadmap <performance-roadmap> |
2937 | - new-config-rationale |
2938 | tortoise-strategy |
2939 | - improved_chk_index |
2940 | nested-trees |
2941 | |
2942 | === renamed file 'doc/developers/nested-trees.txt' => 'doc/developers/plans/nested-trees.txt' |
2943 | === added directory 'doc/developers/plans/performance' |
2944 | === renamed file 'doc/developers/add.txt' => 'doc/developers/plans/performance/add.txt' |
2945 | === renamed file 'doc/developers/annotate.txt' => 'doc/developers/plans/performance/annotate.txt' |
2946 | === renamed file 'doc/developers/bundle-creation.txt' => 'doc/developers/plans/performance/bundle-creation.txt' |
2947 | === renamed file 'doc/developers/commit.txt' => 'doc/developers/plans/performance/commit.txt' |
2948 | --- doc/developers/commit.txt 2009-12-02 20:34:07 +0000 |
2949 | +++ doc/developers/plans/performance/commit.txt 2017-11-11 18:32:23 +0000 |
2950 | @@ -101,7 +101,7 @@ |
2951 | |
2952 | 3 - Before starting the commit proper, we prompt for a commit message |
2953 | and in that commit message editor we show a list of the files that |
2954 | -will be committed: basically the output of bzr status. This is |
2955 | +will be committed: basically the output of brz status. This is |
2956 | basically the same as the list of changes we detect while storing the |
2957 | commit, but because the user will sometimes change the tree after |
2958 | opening the commit editor and expect the final state to be committed I |
2959 | @@ -130,7 +130,7 @@ |
2960 | they don't seem to have substantial performance consequences. |
2961 | |
2962 | If one wanted to optimize solely for the speed of commit I think |
2963 | -hash-addressed file-per-text storage like in git (or bzr 0.1) is very |
2964 | +hash-addressed file-per-text storage like in git (or Breezy 0.1) is very |
2965 | good. Remarkably, it does not need to read the inventory for the |
2966 | previous revision. For each versioned file, we just need to get its |
2967 | hash, either by reading the file or validating its stat data. If that |
2968 | @@ -186,9 +186,9 @@ |
2969 | the 2 parents). |
2970 | |
2971 | 3) **Automatic deletion of 'missing' files.** This is a point that we go |
2972 | - back and forth on. I think the basic idea is that 'bzr commit' by |
2973 | + back and forth on. I think the basic idea is that 'brz commit' by |
2974 | default should abort if it finds a 'missing' file (in case that file was |
2975 | - renamed rather than deleted), but 'bzr commit --auto' can add unknown |
2976 | + renamed rather than deleted), but 'brz commit --auto' can add unknown |
2977 | files and remove missing files automatically. |
2978 | |
2979 | 4) **sha1 for newly added files.** status doesn't really need this: it should |
2980 | @@ -262,7 +262,7 @@ |
2981 | all the work to do really fast comparison and throw-away of unimportant |
2982 | records. |
2983 | |
2984 | -The way I made "bzr status" fast is by moving the 'ignore this record' |
2985 | +The way I made "brz status" fast is by moving the 'ignore this record' |
2986 | ability as deep into the stack as I could get. Status has the property |
2987 | that you don't care about most of the records, just like commit. So the |
2988 | sooner you can stop evaluating the 99% that you don't care about, the |
2989 | |
2990 | === renamed file 'doc/developers/diff.txt' => 'doc/developers/plans/performance/diff.txt' |
2991 | === renamed file 'doc/developers/directory-fingerprints.txt' => 'doc/developers/plans/performance/directory-fingerprints.txt' |
2992 | --- doc/developers/directory-fingerprints.txt 2010-11-12 22:08:18 +0000 |
2993 | +++ doc/developers/plans/performance/directory-fingerprints.txt 2017-11-11 18:32:23 +0000 |
2994 | @@ -223,7 +223,7 @@ |
2995 | * Are unbalanced trees a significant problem? Trees can be unbalanced by having |
2996 | many directories (deep or wide), or many files per directory. |
2997 | |
2998 | - For small trees like bzr, 744 of 874 are in the bzrlib subtree. In |
2999 | + For small trees like bzr, 744 of 874 are in the breezy subtree. In |
3000 | general, larger trees are more balanced, because humans, editors and |
3001 | other tools have trouble managing very unbalanced trees. But there are |
3002 | exceptions: Aaron has one tree with 20,000 generated but versioned |
3003 | |
3004 | === renamed file 'doc/developers/gc.txt' => 'doc/developers/plans/performance/gc.txt' |
3005 | === renamed file 'doc/developers/incremental-push-pull.txt' => 'doc/developers/plans/performance/incremental-push-pull.txt' |
3006 | --- doc/developers/incremental-push-pull.txt 2010-11-12 14:28:36 +0000 |
3007 | +++ doc/developers/plans/performance/incremental-push-pull.txt 2017-11-11 18:32:23 +0000 |
3008 | @@ -14,7 +14,7 @@ |
3009 | A push or pull operation must: |
3010 | * Copy all the data to reconstruct the selected revisions in the target |
3011 | branch. This is the goal of push and pull after all. |
3012 | - * Reject corrupt data. As bzr has no innate mechanism for discarding corrupted |
3013 | + * Reject corrupt data. As brz has no innate mechanism for discarding corrupted |
3014 | data, corrupted data should not be incorporated accidentally. |
3015 | |
3016 | Factors which should add work for push/pull |
3017 | |
3018 | === renamed file 'doc/developers/initial-push-pull.txt' => 'doc/developers/plans/performance/initial-push-pull.txt' |
3019 | === renamed file 'doc/developers/merge-scaling.txt' => 'doc/developers/plans/performance/merge-scaling.txt' |
3020 | === renamed file 'doc/developers/missing.txt' => 'doc/developers/plans/performance/missing.txt' |
3021 | === renamed file 'doc/developers/performance-use-case-analysis.txt' => 'doc/developers/plans/performance/performance-use-case-analysis.txt' |
3022 | === renamed file 'doc/developers/planned-change-integration.txt' => 'doc/developers/plans/performance/planned-change-integration.txt' |
3023 | === renamed file 'doc/developers/planned-performance-changes.txt' => 'doc/developers/plans/performance/planned-performance-changes.txt' |
3024 | === renamed file 'doc/developers/revert.txt' => 'doc/developers/plans/performance/revert.txt' |
3025 | === renamed file 'doc/developers/performance-roadmap.txt' => 'doc/developers/plans/performance/roadmap.txt' |
3026 | --- doc/developers/performance-roadmap.txt 2009-06-10 05:00:47 +0000 |
3027 | +++ doc/developers/plans/performance/roadmap.txt 2017-11-11 18:32:23 +0000 |
3028 | @@ -1,5 +1,5 @@ |
3029 | ========================== |
3030 | -Bazaar Performance Roadmap |
3031 | +Breezy Performance Roadmap |
3032 | ========================== |
3033 | |
3034 | .. Mark sections in included files as following: |
3035 | |
3036 | === renamed file 'doc/developers/status.txt' => 'doc/developers/plans/performance/status.txt' |
3037 | === renamed file 'doc/developers/uncommit.txt' => 'doc/developers/plans/performance/uncommit.txt' |
3038 | === renamed file 'doc/developers/update.txt' => 'doc/developers/plans/performance/update.txt' |
3039 | === renamed file 'doc/developers/tortoise-strategy.txt' => 'doc/developers/plans/tortoise-strategy.txt' |
3040 | === modified file 'doc/developers/plugin-api.txt' |
3041 | --- doc/developers/plugin-api.txt 2010-04-16 12:59:03 +0000 |
3042 | +++ doc/developers/plugin-api.txt 2017-11-11 18:32:23 +0000 |
3043 | @@ -11,7 +11,7 @@ |
3044 | Introduction |
3045 | ============ |
3046 | |
3047 | -bzrlib has a very flexible internal structure allowing plugins for many |
3048 | +breezy has a very flexible internal structure allowing plugins for many |
3049 | operations. Plugins can add commands, new storage formats, diff and merge |
3050 | features and more. This document provides an overview of the API and |
3051 | conventions for plugin authors. |
3052 | @@ -22,15 +22,15 @@ |
3053 | See also |
3054 | -------- |
3055 | |
3056 | - * `Bazaar Developer Documentation Catalog <../index.html>`_. |
3057 | - * `Bazaar Plugins Guide <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_ for |
3058 | + * `Breezy Developer Documentation Catalog <../index.html>`_. |
3059 | + * `Breezy Plugins Guide <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_ for |
3060 | more suggestions about particular APIs. |
3061 | |
3062 | |
3063 | Structure of a plugin |
3064 | ===================== |
3065 | |
3066 | -Plugins are Python modules under ``bzrlib.plugins``. They can be installed |
3067 | +Plugins are Python modules under ``breezy.plugins``. They can be installed |
3068 | either into the PYTHONPATH in that location, or in ~/.bazaar/plugins. |
3069 | |
3070 | Plugins should have a setup.py. |
3071 | @@ -42,12 +42,12 @@ |
3072 | Plugin metadata before installation |
3073 | =================================== |
3074 | |
3075 | -Plugins can export a summary of what they provide, and what versions of bzrlib |
3076 | +Plugins can export a summary of what they provide, and what versions of breezy |
3077 | they are compatible with. This allows tools to be written to work with plugins, |
3078 | such as to generate a directory of plugins, or install them via a |
3079 | symlink/checkout to ~/.bazaar/plugins. |
3080 | |
3081 | -This interface allows bzr to interrogate a plugin without actually loading |
3082 | +This interface allows Breezy to interrogate a plugin without actually loading |
3083 | it. This is useful because loading a plugin may have side effects such |
3084 | as registering or overriding commands, or the plugin may raise an error, |
3085 | if for example a prerequisite is not present. |
3086 | @@ -56,7 +56,7 @@ |
3087 | Metadata protocol |
3088 | ----------------- |
3089 | |
3090 | -A plugin that supports the bzr plugin metadata protocol will do two |
3091 | +A plugin that supports the Breezy plugin metadata protocol will do two |
3092 | things. Firstly, the ``setup.py`` for the plugin will guard the call to |
3093 | ``setup()``:: |
3094 | |
3095 | @@ -71,45 +71,45 @@ |
3096 | +------------------------+---------+----------------------------------------+ |
3097 | | Variable | Default | Definition | |
3098 | +========================+=========+========================================+ |
3099 | -| bzr_plugin_name | None | The name the plugin package should be | |
3100 | +| brz_plugin_name | None | The name the plugin package should be | |
3101 | | | | given on disk. The plugin is then | |
3102 | | | | available to python at | |
3103 | -| | | bzrlib.plugins.NAME | |
3104 | +| | | breezy.plugins.NAME | |
3105 | +------------------------+---------+----------------------------------------+ |
3106 | -| bzr_commands | [] | A list of the commands that the plugin | |
3107 | +| brz_commands | [] | A list of the commands that the plugin | |
3108 | | | | provides. Commands that already exist | |
3109 | -| | | in bzr and are decorated by the plugin | |
3110 | +| | | in brz and are decorated by the plugin | |
3111 | | | | do not need to be listed (but it is not| |
3112 | | | | harmful if you do list them). | |
3113 | +------------------------+---------+----------------------------------------+ |
3114 | -| bzr_plugin_version | None | A version_info 5-tuple with the plugins| |
3115 | +| brz_plugin_version | None | A version_info 5-tuple with the plugins| |
3116 | | | | version. | |
3117 | +------------------------+---------+----------------------------------------+ |
3118 | -| bzr_minimum_version | None | A version_info 3-tuple for comparison | |
3119 | -| | | with the bzrlib minimum and current | |
3120 | +| brz_minimum_version | None | A version_info 3-tuple for comparison | |
3121 | +| | | with the breezy minimum and current | |
3122 | | | | version, for determining likely | |
3123 | | | | compatibility. | |
3124 | +------------------------+---------+----------------------------------------+ |
3125 | -| bzr_maximum_version | None | A version_info 3-tuple like | |
3126 | -| | | bzr_minimum_version but checking the | |
3127 | +| brz_maximum_version | None | A version_info 3-tuple like | |
3128 | +| | | brz_minimum_version but checking the | |
3129 | | | | upper limits supported. | |
3130 | +------------------------+---------+----------------------------------------+ |
3131 | -| bzr_control_formats | {} | A dictionary of descriptions of version| |
3132 | +| brz_control_formats | {} | A dictionary of descriptions of version| |
3133 | | | | control directories. See | |
3134 | | | | `Control Formats` below. | |
3135 | +------------------------+---------+----------------------------------------+ |
3136 | -| bzr_checkout_formats | {} | A dictionary of tree_format_string -> | |
3137 | +| brz_checkout_formats | {} | A dictionary of tree_format_string -> | |
3138 | | | | human description strings, for tree | |
3139 | | | | formats that drop into the | |
3140 | | | | ``.bzr/checkout`` metadir system. | |
3141 | +------------------------+---------+----------------------------------------+ |
3142 | -| bzr_branch_formats | {} | As bzr_checkout_formats but for | |
3143 | +| brz_branch_formats | {} | As brz_checkout_formats but for | |
3144 | | | | branches. | |
3145 | +------------------------+---------+----------------------------------------+ |
3146 | -| bzr_repository_formats | {} | As bzr_checkout_formats but for | |
3147 | +| brz_repository_formats | {} | As brz_checkout_formats but for | |
3148 | | | | repositories. | |
3149 | +------------------------+---------+----------------------------------------+ |
3150 | -| bzr_transports | [] | URL prefixes for which this plugin | |
3151 | +| brz_transports | [] | URL prefixes for which this plugin | |
3152 | | | | will register transports. | |
3153 | +------------------------+---------+----------------------------------------+ |
3154 | |
3155 | @@ -127,10 +127,10 @@ |
3156 | the content of the file. Thus:: |
3157 | |
3158 | # (look for a .hg directory) |
3159 | - bzr_control_formats = {"Mercurial":{'.hg/': None}} |
3160 | + brz_control_formats = {"Mercurial":{'.hg/': None}} |
3161 | |
3162 | # (look for a file called .svn/format with contents 4\n). |
3163 | - bzr_control_formats = {"Subversion":{'.svn/format': '4\n'}} |
3164 | + brz_control_formats = {"Subversion":{'.svn/format': '4\n'}} |
3165 | |
3166 | |
3167 | Example |
3168 | @@ -141,21 +141,21 @@ |
3169 | #!/usr/bin/env python2.4 |
3170 | from distutils.core import setup |
3171 | |
3172 | - bzr_plugin_name = 'demo' |
3173 | - bzr_commands = [ |
3174 | + brz_plugin_name = 'demo' |
3175 | + brz_commands = [ |
3176 | 'new-command', |
3177 | ] |
3178 | |
3179 | - bzr_branch_formats = { |
3180 | + brz_branch_formats = { |
3181 | "Branch label on disk\n":"demo branch", |
3182 | } |
3183 | |
3184 | - bzr_control_formats = {"Subversion":{'.svn/format': '4\n'}} |
3185 | - |
3186 | - bzr_transports = ["hg+ssh://"] |
3187 | - |
3188 | - bzr_plugin_version = (1, 3, 0, 'dev', 0) |
3189 | - bzr_minimum_version = (1, 0, 0) |
3190 | + brz_control_formats = {"Subversion":{'.svn/format': '4\n'}} |
3191 | + |
3192 | + brz_transports = ["hg+ssh://"] |
3193 | + |
3194 | + brz_plugin_version = (1, 3, 0, 'dev', 0) |
3195 | + brz_minimum_version = (1, 0, 0) |
3196 | |
3197 | if __name__ == 'main': |
3198 | setup(name="Demo", |
3199 | @@ -165,10 +165,10 @@ |
3200 | author_email="bazaar@lists.canonical.com", |
3201 | license = "GNU GPL v2", |
3202 | url="https://launchpad.net/bzr-demo", |
3203 | - packages=['bzrlib.plugins.demo', |
3204 | - 'bzrlib.plugins.demo.tests', |
3205 | + packages=['breezy.plugins.demo', |
3206 | + 'breezy.plugins.demo.tests', |
3207 | ], |
3208 | - package_dir={'bzrlib.plugins.demo': '.'}) |
3209 | + package_dir={'breezy.plugins.demo': '.'}) |
3210 | |
3211 | |
3212 | Plugin metadata after installation |
3213 | @@ -193,14 +193,14 @@ |
3214 | ----------- |
3215 | |
3216 | Plugins can and should declare that they depend on a particular version of |
3217 | -bzrlib like so:: |
3218 | - |
3219 | - from bzrlib.api import require_api |
3220 | - |
3221 | - require_api(bzrlib, (1, 11, 0)) |
3222 | +breezy like so:: |
3223 | + |
3224 | + from breezy.api import require_api |
3225 | + |
3226 | + require_api(breezy, (1, 11, 0)) |
3227 | |
3228 | Please see `API versioning <api-versioning.html>`_ for more details on the API |
3229 | -metadata protocol used by bzrlib. |
3230 | +metadata protocol used by breezy. |
3231 | |
3232 | Plugin version |
3233 | -------------- |
3234 | @@ -219,8 +219,8 @@ |
3235 | other places. To detect whether the module is being loaded by bzr, use |
3236 | something like this:: |
3237 | |
3238 | - if __name__ == 'bzrlib.plugins.loggerhead': |
3239 | - # register with bzrlib... |
3240 | + if __name__ == 'breezy.plugins.loggerhead': |
3241 | + # register with breezy... |
3242 | |
3243 | |
3244 | Plugin performance |
3245 | @@ -228,7 +228,7 @@ |
3246 | |
3247 | Plugins should avoid doing work or loading code from the plugin or |
3248 | external libraries, if they're just installed but not actually active, |
3249 | -because this slows down every invocation of bzr. The bzrlib APIs |
3250 | +because this slows down every invocation of bzr. The breezy APIs |
3251 | generally allow the plugin to 'lazily' register methods to invoke if a |
3252 | particular disk format or seen or a particular command is run. |
3253 | |
3254 | @@ -240,8 +240,8 @@ |
3255 | startup. Generally the plugin won't want to actually do anything at this |
3256 | time other than register or override functions to be called later. |
3257 | |
3258 | -The plugin can import bzrlib and call any function. |
3259 | -Some interesting APIs are described in `Bazaar Plugins Guide <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_. |
3260 | +The plugin can import breezy and call any function. |
3261 | +Some interesting APIs are described in `Breezy Plugins Guide <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_. |
3262 | |
3263 | |
3264 | Publishing your plugin |
3265 | |
3266 | === modified file 'doc/developers/ppa.txt' |
3267 | --- doc/developers/ppa.txt 2011-02-01 01:34:58 +0000 |
3268 | +++ doc/developers/ppa.txt 2017-11-11 18:32:23 +0000 |
3269 | @@ -1,13 +1,13 @@ |
3270 | -Managing the Bazaar PPA |
3271 | +Managing the Breezy PPA |
3272 | ======================= |
3273 | |
3274 | -See also: `Bazaar Developer Document Catalog <index.html>`_. |
3275 | +See also: `Breezy Developer Document Catalog <index.html>`_. |
3276 | |
3277 | |
3278 | Background |
3279 | ---------- |
3280 | |
3281 | -We build Ubuntu ``.deb`` packages for Bazaar as an important part of the |
3282 | +We build Ubuntu ``.deb`` packages for Breezy as an important part of the |
3283 | release process. These packages are hosted in a few `Personal Package |
3284 | Archives (PPA)`__ on Launchpad. |
3285 | |
3286 | @@ -48,7 +48,7 @@ |
3287 | |
3288 | Final release versions are first uploaded into the proposed PPA, which |
3289 | serves as a staging area to allow for new packages to be tested, and also |
3290 | -so that a complete set of Bazaar core and plugin updated versions can be |
3291 | +so that a complete set of Breezy core and plugin updated versions can be |
3292 | prepared together, when negotiating an API version transition. |
3293 | |
3294 | Once ready, packages can be copied from the proposed PPA to the main PPA |
3295 | @@ -121,7 +121,7 @@ |
3296 | .. _`bzr-builddeb`: http://launchpad.net/bzr-builddeb |
3297 | |
3298 | |
3299 | -Packaging Bazaar |
3300 | +Packaging Breezy |
3301 | ---------------- |
3302 | |
3303 | Overview of packaging with builddeb |
3304 | @@ -227,7 +227,7 @@ |
3305 | #. The ``bzr-builddeb`` step will download the original tarball if you do |
3306 | not already have it, putting it into a ``tarballs`` directory. |
3307 | |
3308 | -#. For Bazaar plugins, change the ``debian/control`` file to express a |
3309 | +#. For Breezy plugins, change the ``debian/control`` file to express a |
3310 | dependency on the correct version of ``bzr``. |
3311 | |
3312 | For bzrtools this is typically:: |
3313 | |
3314 | === modified file 'doc/developers/principles.txt' |
3315 | --- doc/developers/principles.txt 2009-12-14 04:58:08 +0000 |
3316 | +++ doc/developers/principles.txt 2017-11-11 18:32:23 +0000 |
3317 | @@ -1,8 +1,8 @@ |
3318 | ======================== |
3319 | -Bazaar Design Principles |
3320 | +Breezy Design Principles |
3321 | ======================== |
3322 | |
3323 | -We have learned or adopted a few general principles for code in Bazaar. |
3324 | +We have learned or adopted a few general principles for code in Breezy. |
3325 | Generally we will try to follow them in future, either for consistency or |
3326 | because they've been proven to work well, or both. |
3327 | |
3328 | @@ -10,7 +10,7 @@ |
3329 | or modify them as we learn more, or we might be diverging for them for no |
3330 | very good reason but just because of bugs. If in doubt, ask. |
3331 | |
3332 | -See also: `Bazaar Developer Document Catalog <index.html>`_. |
3333 | +See also: `Breezy Developer Document Catalog <index.html>`_. |
3334 | |
3335 | |
3336 | Testing |
3337 | @@ -36,7 +36,7 @@ |
3338 | the whole object. |
3339 | |
3340 | The format marker should be a string understandable by a user that names |
3341 | -the format and gives the bzr release that introduced it. If the bzr |
3342 | +the format and gives the Breezy release that introduced it. If the Breezy |
3343 | program doesn't understand that format, it can at least show that format |
3344 | marker to the user. |
3345 | |
3346 | @@ -49,14 +49,14 @@ |
3347 | those changes, or don't propagate them properly. |
3348 | |
3349 | We clearly distinguish internal files from user files. Files inside |
3350 | -``.bzr/`` are only written to by bzr and we discourage users from editing |
3351 | -them. Within bzr, code addressing the abstract interface of the Branch, |
3352 | -BzrDir, etc shouldn't know where or how the internal files are stored. If |
3353 | +``.bzr/`` are only written to by Breezy and we discourage users from editing |
3354 | +them. Within Breezy, code addressing the abstract interface of the Branch, |
3355 | +ControlDir, etc shouldn't know where or how the internal files are stored. If |
3356 | anything else is written in there, it won't be propagated when pushing or |
3357 | pulling, and won't be converted when upgrading. (This is not quite true |
3358 | though; there is a ``branch.conf``.) |
3359 | |
3360 | User files within the tree, by contrast, we always store and return |
3361 | -verbatim. It's OK for Bazaar to read and act on these files (as we do |
3362 | -with ``.bzrignore``), and to update them (as ``bzr ignore`` does), but |
3363 | +verbatim. It's OK for Breezy to read and act on these files (as we do |
3364 | +with ``.bzrignore``), and to update them (as ``brz ignore`` does), but |
3365 | they remain clearly user files and can be directly edited. |
3366 | |
3367 | === modified file 'doc/developers/profiling.txt' |
3368 | --- doc/developers/profiling.txt 2009-12-02 20:34:07 +0000 |
3369 | +++ doc/developers/profiling.txt 2017-11-11 18:32:23 +0000 |
3370 | @@ -8,7 +8,7 @@ |
3371 | information. In the simpliest case, the ``--lsprof`` option can be used as |
3372 | shown below:: |
3373 | |
3374 | - bzr --lsprof ... |
3375 | + brz --lsprof ... |
3376 | |
3377 | This will dump the profiling information to stdout before exiting. |
3378 | Alternatively, the ``--lsprof-file`` option can be used to specify a filename |
3379 | @@ -28,10 +28,10 @@ |
3380 | in combination with KCacheGrind to visualize what the ``status`` command |
3381 | is doing:: |
3382 | |
3383 | - bzr --lsprof-file callgrind.out.st001 status |
3384 | + brz --lsprof-file callgrind.out.st001 status |
3385 | kcachegrind callgrind.out.st001 & |
3386 | |
3387 | -.. Note:: bzr also has a ``--profile`` option that uses the hotshot profiler |
3388 | +.. Note:: brz also has a ``--profile`` option that uses the hotshot profiler |
3389 | instead of the lsprof profiler. The hotshot profiler can be useful |
3390 | though the lsprof one is generally recommended. See |
3391 | http://docs.python.org/lib/node795.html. |
3392 | @@ -49,7 +49,7 @@ |
3393 | identifying unnecessary lock traffic. This is activated by the ``-Dlock`` |
3394 | global option. |
3395 | |
3396 | -This writes messages into ``~/.bzr.log``. |
3397 | +This writes messages into ``~/.brz.log``. |
3398 | At present this only logs actions relating to the on-disk lockdir. It |
3399 | doesn't describe actions on in-memory lock counters, or OS locks (which |
3400 | are used for dirstate.) |
3401 | |
3402 | === added directory 'doc/developers/proposals' |
3403 | === modified file 'doc/developers/releasing.txt' |
3404 | --- doc/developers/releasing.txt 2017-06-06 01:10:48 +0000 |
3405 | +++ doc/developers/releasing.txt 2017-11-11 18:32:23 +0000 |
3406 | @@ -114,9 +114,9 @@ |
3407 | |
3408 | To start a new series cycle: |
3409 | |
3410 | -#. Create a new series ``x.y`` at <https://launchpad.net/bzr/+addseries>. |
3411 | +#. Create a new series ``x.y`` at <https://launchpad.net/brz/+addseries>. |
3412 | |
3413 | -#. Add milestones at <https://launchpad.net/bzr/x.y/+addmilestone> to that |
3414 | +#. Add milestones at <https://launchpad.net/brz/x.y/+addmilestone> to that |
3415 | series for the beta releases and the stable series mentioning their |
3416 | expected dates. Only the milestone associated to the next release in |
3417 | this series should be left active to avoid clutter when targeting bugs. |
3418 | @@ -189,8 +189,8 @@ |
3419 | #. Update the "What's New" documents in ``doc/en/whats-new``. |
3420 | |
3421 | #. Make sure a milestone exists for your release and that it is active, |
3422 | - <https://launchpad.net/bzr/x.y> lists the existing milestones, |
3423 | - <https://launchpad.net/bzr/x.y/x.y.z/+edit> allows you to toggle the |
3424 | + <https://launchpad.net/brz/x.y> lists the existing milestones, |
3425 | + <https://launchpad.net/brz/x.y/x.y.z/+edit> allows you to toggle the |
3426 | active flag. |
3427 | |
3428 | #. Commit this and send it to PQM. |
3429 | @@ -205,7 +205,7 @@ |
3430 | #. Check that there is a milestone for the release you're doing. If there |
3431 | is no milestone it indicates a process problem - make the milestone but |
3432 | also mail the list to raise this issue in our process. Milestones are |
3433 | - found at <https://launchpad.net/bzr/+milestone/x.y.z>. |
3434 | + found at <https://launchpad.net/brz/+milestone/x.y.z>. |
3435 | |
3436 | #. Merge into your branch all previous stable series fixes that haven't been |
3437 | merged yet. For example, if you're releasing 2.6.x, make sure the fixes |
3438 | @@ -421,7 +421,7 @@ |
3439 | Publishing the source tarball |
3440 | ----------------------------- |
3441 | |
3442 | -#. Go to the relevant <https://launchpad.net/bzr/x.y> series page in Launchpad. |
3443 | +#. Go to the relevant <https://launchpad.net/brz/x.y> series page in Launchpad. |
3444 | |
3445 | #. Create a release of the milestone, and upload the source tarball and |
3446 | the GPG signature. Or, if you prefer, use the |
3447 | @@ -497,7 +497,7 @@ |
3448 | brz push lp:~brz-core/brz/brz-translations-export-x.y |
3449 | |
3450 | #. On the translations series synchronization settings page |
3451 | - <https://translations.launchpad.net/bzr/x.y/+translations-settings> |
3452 | + <https://translations.launchpad.net/brz/x.y/+translations-settings> |
3453 | turn on ``Import template files`` then for exports click ``Choose a |
3454 | target branch`` and point it at the branch you just pushed. |
3455 | |
3456 | @@ -541,7 +541,7 @@ |
3457 | we have a releasable product. The next step is to make it generally |
3458 | available to the world. |
3459 | |
3460 | -#. Go to the release web page at <https://launchpad.net/bzr/x.y/x.y.z> |
3461 | +#. Go to the release web page at <https://launchpad.net/brz/x.y/x.y.z> |
3462 | |
3463 | #. Announce on the Breezy website. |
3464 | |
3465 | @@ -595,15 +595,15 @@ |
3466 | feedback. |
3467 | |
3468 | Breezy is now available for download from |
3469 | - https://launchpad.net/bzr/x.y/x.y.z/ as a source tarball; packages |
3470 | + https://launchpad.net/brz/x.y/x.y.z/ as a source tarball; packages |
3471 | for various systems will be available soon. |
3472 | |
3473 | <<release notes from this release back to the last major release>> |
3474 | |
3475 | Feel free to tweak this to your taste. |
3476 | |
3477 | -#. Make an announcement through <https://launchpad.net/bzr/+announce> |
3478 | - mentioning the milestone URL <https://launchpad.net/bzr/+milestone/x.y.z> |
3479 | +#. Make an announcement through <https://launchpad.net/brz/+announce> |
3480 | + mentioning the milestone URL <https://launchpad.net/brz/+milestone/x.y.z> |
3481 | so people get an easy access to details. |
3482 | |
3483 | #. Announce on https://freecode.com/projects/bazaar-vcs |
3484 | @@ -627,8 +627,8 @@ |
3485 | can still access the releases notes via the ``Release Notes`` URL in |
3486 | the ``Links`` box in the upper right area of the page. When doing the |
3487 | first stable release in a series, delete the ``Unstable installers`` |
3488 | - <https://launchpad.net/bzr/x.y/x.ybn> and ``Unstable source tarball`` |
3489 | - <http://launchpad.net/bzr/x.y/x.ybn/+download/brz-x.ybn.tar.gz> |
3490 | + <https://launchpad.net/brz/x.y/x.ybn> and ``Unstable source tarball`` |
3491 | + <http://launchpad.net/brz/x.y/x.ybn/+download/brz-x.ybn.tar.gz> |
3492 | links. Conversely, when creating the first beta in a development |
3493 | series, create these links again. Check all links when doing other |
3494 | kinds of release. |
3495 | |
3496 | === modified file 'doc/developers/repository-stream.txt' |
3497 | --- doc/developers/repository-stream.txt 2009-12-02 20:34:07 +0000 |
3498 | +++ doc/developers/repository-stream.txt 2017-11-11 18:32:23 +0000 |
3499 | @@ -9,7 +9,7 @@ |
3500 | |
3501 | This document describes the proposed programming interface for streaming |
3502 | data from and into repositories. This programming interface should allow |
3503 | -a single interface for pulling data from and inserting data into a Bazaar |
3504 | +a single interface for pulling data from and inserting data into a Breezy |
3505 | repository. |
3506 | |
3507 | .. contents:: |
3508 | |
3509 | === modified file 'doc/developers/repository.txt' |
3510 | --- doc/developers/repository.txt 2010-11-12 14:28:36 +0000 |
3511 | +++ doc/developers/repository.txt 2017-11-11 18:32:23 +0000 |
3512 | @@ -8,7 +8,7 @@ |
3513 | :Date: 2007-07-08 |
3514 | |
3515 | This document describes the services repositories offer and need to offer |
3516 | -within bzrlib. |
3517 | +within breezy. |
3518 | |
3519 | |
3520 | .. contents:: |
3521 | @@ -24,7 +24,7 @@ |
3522 | Terminology |
3523 | =========== |
3524 | |
3525 | -A **repository** is a store of historical data for bzr. |
3526 | +A **repository** is a store of historical data for Breezy. |
3527 | |
3528 | |
3529 | Command Requirements |
3530 | @@ -230,7 +230,7 @@ |
3531 | ^^^^^^^^^^^^^ |
3532 | |
3533 | We could discard the per-knit .kndx by writing a new index at the end of |
3534 | -every bzr transaction indexing the new data introduced by the bzr |
3535 | +every Breezy transaction indexing the new data introduced by the Breezy |
3536 | operation. e.g. at the end of fetch. This can be based on the new |
3537 | ``GraphIndex`` index type. |
3538 | |
3539 | |
3540 | === modified file 'doc/developers/revision-properties.txt' |
3541 | --- doc/developers/revision-properties.txt 2012-02-16 16:42:43 +0000 |
3542 | +++ doc/developers/revision-properties.txt 2017-11-11 18:32:23 +0000 |
3543 | @@ -26,7 +26,7 @@ |
3544 | --------------------- |
3545 | |
3546 | At the moment, three standardized revision properties are recognized and used |
3547 | -by bzrlib: |
3548 | +by breezy: |
3549 | |
3550 | * ``authors`` - Authors of the change. This value is a "\\n" separated set |
3551 | of values in the same format as the committer-id. This property can be |
3552 | @@ -40,7 +40,7 @@ |
3553 | The value is set automatically in ``MutableTree.commit``. |
3554 | * ``bugs`` - A list of bug URLs and their statuses. The list is separated |
3555 | by the new-line character (\\n) and each entry is in format |
3556 | - '<URL> <status>'. Currently, bzrlib uses only status 'fixed'. See |
3557 | + '<URL> <status>'. Currently, breezy uses only status 'fixed'. See |
3558 | `Bug Trackers`_ for more details about using this feature. |
3559 | |
3560 | .. _Bug Trackers: ../en/user-guide/index.html#bug-trackers |
3561 | |
3562 | === modified file 'doc/developers/specifications.txt' |
3563 | --- doc/developers/specifications.txt 2010-07-07 11:21:19 +0000 |
3564 | +++ doc/developers/specifications.txt 2017-11-11 18:32:23 +0000 |
3565 | @@ -21,13 +21,14 @@ |
3566 | case-insensitive-file-systems |
3567 | development-repo |
3568 | packrepo |
3569 | + feature-flags |
3570 | |
3571 | |
3572 | * `Revision Properties <revision-properties.html>`_ |--| An application |
3573 | can set arbitrary per-revision key/value pairs to store app-specific |
3574 | data. |
3575 | |
3576 | -* `API versioning <api-versioning.html>`_ |--| bzrlib API versioning. |
3577 | +* `API versioning <api-versioning.html>`_ |--| breezy API versioning. |
3578 | |
3579 | * `Apport error reporting <apport.html>`_ |--| Capture data to report |
3580 | bugs. |
3581 | @@ -43,7 +44,7 @@ |
3582 | * `Groupcompress <groupcompress-design.html>`_ |--| Notes on the compression |
3583 | technology used in CHK repositories. |
3584 | |
3585 | -* `Indices <indices.html>`_ |--| The index facilities available within bzrlib. |
3586 | +* `Indices <indices.html>`_ |--| The index facilities available within breezy. |
3587 | |
3588 | * `Inventories <inventory.html>`_ |--| Tree shape abstraction. |
3589 | |
3590 | @@ -70,6 +71,10 @@ |
3591 | * `Knit pack repositories <packrepo.html>`_ |--| KnitPack repositories |
3592 | (new in Bazaar 0.92). |
3593 | |
3594 | +* `Format feature flags <feature-flags.html>`_ |--| Allow extending |
3595 | + formats with optional features. (new in Bazaar 2.5). |
3596 | + |
3597 | + |
3598 | |
3599 | .. |--| unicode:: U+2014 |
3600 | |
3601 | |
3602 | === modified file 'doc/developers/transports.txt' |
3603 | --- doc/developers/transports.txt 2010-11-12 22:08:18 +0000 |
3604 | +++ doc/developers/transports.txt 2017-11-11 18:32:23 +0000 |
3605 | @@ -1,8 +1,8 @@ |
3606 | #################################### |
3607 | -Developer guide to bzrlib transports |
3608 | +Developer guide to breezy transports |
3609 | #################################### |
3610 | |
3611 | -This guide describes the `Transport` classes that Bazaar uses for most |
3612 | +This guide describes the `Transport` classes that Breezy uses for most |
3613 | local and remote file access. (Working tree files are the major |
3614 | exception (`bug 606249 <https://bugs.launchpad.net/bzr/+bug/606249>`). |
3615 | |
3616 | @@ -23,17 +23,17 @@ |
3617 | |
3618 | self.requireFeature(tests.SymlinkFeature) |
3619 | |
3620 | -Bazaar versions symlinks as objects in their own right, whose content is |
3621 | -the path they point to. bzr doesn't care whether a versioned |
3622 | +Breezy versions symlinks as objects in their own right, whose content is |
3623 | +the path they point to. Breezy doesn't care whether a versioned |
3624 | symlink is absolute or relative; or whether it points inside or outside |
3625 | the working tree; or whether its referent exists or not. In Unix the |
3626 | -target of a symlink is a byte string; bzr treats this as a Unicode string |
3627 | +target of a symlink is a byte string; Breezy treats this as a Unicode string |
3628 | in the filesystem encoding (`osutils._fs_enc`). |
3629 | |
3630 | -So when we say ``bzr add symlink``, this should always add the symlink to |
3631 | +So when we say ``brz add symlink``, this should always add the symlink to |
3632 | its containing working tree, and never dereference the symlink. |
3633 | |
3634 | -However, ``bzr add symlink/file`` shouldn't add ``file`` as a child of |
3635 | +However, ``brz add symlink/file`` shouldn't add ``file`` as a child of |
3636 | ``symlink``. (Symlinks don't have files underneath them: they may point to |
3637 | a directory which contains children, but if the symlink was pointed |
3638 | somewhere else those children would be unaffected.) This could either add |
3639 | @@ -41,7 +41,7 @@ |
3640 | |
3641 | One interesting case for this is :: |
3642 | |
3643 | - bzr add ~/dev/bug123/a.c |
3644 | + brz add ~/dev/bug123/a.c |
3645 | |
3646 | where ``~/dev`` is actually a symlink to ``/srv/dev/joe/``. In this case |
3647 | clearly the user does want us to follow the symlink to open the tree. |
3648 | @@ -54,7 +54,7 @@ |
3649 | Useful functions |
3650 | ---------------- |
3651 | |
3652 | -`bzrlib.osutils.dereference_path` does the commonly useful operation of |
3653 | +`breezy.osutils.dereference_path` does the commonly useful operation of |
3654 | resolving the directory part of a path, but leaving the filename |
3655 | untouched. In other words :: |
3656 | |
3657 | @@ -90,7 +90,7 @@ |
3658 | |
3659 | On local, SFTP and bzr+ssh transports, we can directly see symlinks as |
3660 | symlinks. Over HTTP (and FTP?) they're expanded by the server and we |
3661 | -cannot detect them. This can cause problems when bzr follows relative |
3662 | +cannot detect them. This can cause problems when Breezy follows relative |
3663 | paths because typically we will join the paths, and we may do this |
3664 | inconsistently with how the server, which can see the symlinks, would do. |
3665 | |
3666 | @@ -98,9 +98,9 @@ |
3667 | Symlinks and ChrootTransports |
3668 | ----------------------------- |
3669 | |
3670 | -bzr has an internal concept of a `ChrootTransport` that locks access into |
3671 | +Breezy has an internal concept of a `ChrootTransport` that locks access into |
3672 | a particular directory. Symlinks should not break out of a chroot jail |
3673 | -which implies they should be expanded and checked within bzrlib. |
3674 | +which implies they should be expanded and checked within breezy. |
3675 | (At least as long as the transport lets us see the symlink; otherwise it |
3676 | may not be possible.) |
3677 | |
3678 | |
3679 | === modified file 'doc/developers/ui.txt' |
3680 | --- doc/developers/ui.txt 2010-09-14 06:46:18 +0000 |
3681 | +++ doc/developers/ui.txt 2017-11-11 18:32:23 +0000 |
3682 | @@ -8,7 +8,7 @@ |
3683 | Processing Command Lines |
3684 | ------------------------ |
3685 | |
3686 | -bzrlib has a standard framework for parsing command lines and calling |
3687 | +breezy has a standard framework for parsing command lines and calling |
3688 | processing routines associated with various commands. See builtins.py |
3689 | for numerous examples. |
3690 | |
3691 | @@ -19,7 +19,7 @@ |
3692 | There are some common requirements in the library: some parameters need to be |
3693 | unicode safe, some need byte strings, and so on. At the moment we have |
3694 | only codified one specific pattern: Parameters that need to be unicode |
3695 | -should be checked via ``bzrlib.osutils.safe_unicode``. This will coerce the |
3696 | +should be checked via ``breezy.osutils.safe_unicode``. This will coerce the |
3697 | input into unicode in a consistent fashion, allowing trivial strings to be |
3698 | used for programmer convenience, but not performing unpredictably in the |
3699 | presence of different locales. |
3700 | @@ -28,8 +28,8 @@ |
3701 | ============ |
3702 | |
3703 | There are some operations, such as uncommitting, or breaking a lock, where |
3704 | -bzr may want to get confirmation from the user before proceeding. |
3705 | -However in some circumstances bzr should just go ahead without asking: if |
3706 | +Breezy may want to get confirmation from the user before proceeding. |
3707 | +However in some circumstances Breezy should just go ahead without asking: if |
3708 | it's being used from a noninteractive program, or if the user's asked to |
3709 | never be asked for this particular confirmation or for any confirmations |
3710 | at all. |
3711 | @@ -45,13 +45,13 @@ |
3712 | reasons be done elsewhere, they need not perfectly correspond to the place |
3713 | they're used, and they should stay stable even when the code moves.) |
3714 | |
3715 | -``bzrlib.builtins.uncommit`` |
3716 | +``breezy.builtins.uncommit`` |
3717 | Before the ``uncommit`` command actually changes the branch. |
3718 | |
3719 | -``bzrlib.lockdir.break`` |
3720 | +``breezy.lockdir.break`` |
3721 | Before breaking a lock. |
3722 | |
3723 | -``bzrlib.msgeditor.unchanged`` |
3724 | +``breezy.msgeditor.unchanged`` |
3725 | Proceed even though the user made no changes to the template message. |
3726 | |
3727 | Interactive confirmations can be overridden by using a |
3728 | @@ -65,7 +65,7 @@ |
3729 | (The strategy described here is what we want to get to, but it's not |
3730 | consistently followed in the code at the moment.) |
3731 | |
3732 | -bzrlib is intended to be a generically reusable library. It shouldn't |
3733 | +breezy is intended to be a generically reusable library. It shouldn't |
3734 | write messages to stdout or stderr, because some programs that use it |
3735 | might want to display that information through a GUI or some other |
3736 | mechanism. |
3737 | @@ -85,7 +85,7 @@ |
3738 | |
3739 | 2. Unstructured log/debug messages, mostly for the benefit of the |
3740 | developers or users trying to debug problems. This should always |
3741 | - be sent through ``bzrlib.trace`` and Python ``logging``, so that |
3742 | + be sent through ``breezy.trace`` and Python ``logging``, so that |
3743 | it can be redirected by the client. |
3744 | |
3745 | The distinction between the two is a bit subjective, but in general if |
3746 | @@ -99,7 +99,7 @@ |
3747 | Progress and Activity Indications |
3748 | --------------------------------- |
3749 | |
3750 | -bzrlib has a way for code to display to the user that stuff is happening |
3751 | +breezy has a way for code to display to the user that stuff is happening |
3752 | during a long operation. There are two particular types: *activity* which |
3753 | means that IO is happening on a Transport, and *progress* which means that |
3754 | higher-level application work is occurring. Both are drawn together by |
3755 | @@ -111,7 +111,7 @@ |
3756 | Progress uses a model/view pattern: application code acts on a |
3757 | `ProgressTask` object, which notifies the UI when it needs to be |
3758 | displayed. Progress tasks form a stack. To create a new progress task on |
3759 | -top of the stack, call `bzrlib.ui.ui_factory.nested_progress_bar()`, then |
3760 | +top of the stack, call `breezy.ui.ui_factory.nested_progress_bar()`, then |
3761 | call `update()` on the returned ProgressTask. It can be updated with just |
3762 | a text description, with a numeric count, or with a numeric count and |
3763 | expected total count. If an expected total count is provided the view |
3764 | @@ -157,8 +157,8 @@ |
3765 | Displaying help |
3766 | =============== |
3767 | |
3768 | -Bazaar has online help for various topics through ``bzr help COMMAND`` or |
3769 | -equivalently ``bzr command -h``. We also have help on command options, |
3770 | +Breezy has online help for various topics through ``brz help COMMAND`` or |
3771 | +equivalently ``brz command -h``. We also have help on command options, |
3772 | and on other help topics. (See ``help_topics.py``.) |
3773 | |
3774 | As for python docstrings, the first paragraph should be a single-sentence |
3775 | @@ -190,7 +190,7 @@ |
3776 | 4. An internal error occurred (one that shows a traceback.) |
3777 | |
3778 | Errors are handled through Python exceptions. Exceptions should be defined |
3779 | -inside bzrlib.errors, so that we can see the whole tree at a glance. |
3780 | +inside breezy.errors, so that we can see the whole tree at a glance. |
3781 | |
3782 | We broadly classify errors as either being either internal or not, |
3783 | depending on whether ``internal_error`` is set or not. If we think it's our |
3784 | @@ -208,7 +208,7 @@ |
3785 | either there's a bug in bzr, or something complicated has gone wrong in |
3786 | the environment that means one internal file was deleted. |
3787 | |
3788 | -Many errors are defined in ``bzrlib/errors.py`` but it's OK for new errors |
3789 | +Many errors are defined in ``breezy/errors.py`` but it's OK for new errors |
3790 | to be added near the place where they are used. |
3791 | |
3792 | Exceptions are formatted for the user by conversion to a string |
3793 | |
3794 | === modified file 'doc/developers/win32_build_setup.txt' |
3795 | --- doc/developers/win32_build_setup.txt 2010-11-12 22:36:19 +0000 |
3796 | +++ doc/developers/win32_build_setup.txt 2017-11-11 18:32:23 +0000 |
3797 | @@ -22,7 +22,7 @@ |
3798 | 1) Download cygwin's setup.exe from http://www.cygwin.com |
3799 | At present the current version is 1.5.25-15. This is used primarily to |
3800 | install the build scripts and gcc-mingw. Note that we explicitly *don't* |
3801 | - install cygwin's python or bzr package. As we are only interested in |
3802 | + install cygwin's python or Breezy package. As we are only interested in |
3803 | running the native version of bzr. For information on running the cygwin |
3804 | port of bzr, look elsewhere. |
3805 | |
3806 | |
3807 | === removed file 'doc/developers/xdg_config_spec.txt' |
3808 | --- doc/developers/xdg_config_spec.txt 2014-02-14 10:29:49 +0000 |
3809 | +++ doc/developers/xdg_config_spec.txt 1970-01-01 00:00:00 +0000 |
3810 | @@ -1,24 +0,0 @@ |
3811 | -Transitioning Unix installs to the XDG Base Directory Specification |
3812 | -=================================================================== |
3813 | - |
3814 | -Currently, Bazaar stores its configuration files and plugins under the |
3815 | -directory ~/.bazaar on unix installs. On Windows, this is %APPDATA%/Bazaar/2.0. |
3816 | -With the XDG Base Directory specification |
3817 | -(http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html), many |
3818 | -Linux and Unix platforms have tried to centralize configuration files under a |
3819 | -specific directory referred to as $XDG_CONFIG_HOME. This has a default value |
3820 | -of ~/.config. |
3821 | - |
3822 | -Bazaar would like to be a good Unix citizen by using these standard locations |
3823 | -for configuration files. As such, we should support that location, but not |
3824 | -require it. Note that the following descriptions do not apply |
3825 | -to Windows which should use their own native configuration |
3826 | -locations. (On Windows, we currently do this by working under %APPDATA%. |
3827 | - |
3828 | -* If $XDG_CONFIG_HOME/bazaar exists, use the files there for configuration, |
3829 | - noting in the log that we are doing so. This allows individuals who would |
3830 | - like to use the XDG specification to do so. |
3831 | -* Due to a lack of consensus on where plugins should live under the XDG Base |
3832 | - Directory spec, continue to look for plugins in ~/.bazaar/plugins. To |
3833 | - change this directory to something not under ~/.bazaar, use the environment |
3834 | - variable $BZR_PLUGIN_PATH. |
3835 | |
3836 | === modified file 'doc/en/release-notes/brz-3.0.txt' |
3837 | --- doc/en/release-notes/brz-3.0.txt 2017-10-07 13:27:26 +0000 |
3838 | +++ doc/en/release-notes/brz-3.0.txt 2017-11-11 18:32:23 +0000 |
3839 | @@ -140,6 +140,9 @@ |
3840 | Thanks to Augie Fackler for reporting. |
3841 | (Jelmer Vernooij, #1710979) |
3842 | |
3843 | +* Support automatic rename tracking into new directories. |
3844 | + (mnn, #373319) |
3845 | + |
3846 | Documentation |
3847 | ************* |
3848 |
Looks good with change to test mentioned.