Merge lp:~lifeless/bzr/bug-398668 into lp:~bzr/bzr/trunk-old

Proposed by Robert Collins
Status: Merged
Merged at revision: not available
Proposed branch: lp:~lifeless/bzr/bug-398668
Merge into: lp:~bzr/bzr/trunk-old
Diff against target: 504 lines
To merge this branch: bzr merge lp:~lifeless/bzr/bug-398668
Reviewer Review Type Date Requested Status
John A Meinel Approve
Review via email: mp+10288@code.launchpad.net

This proposal supersedes a proposal from 2009-08-17.

To post a comment you must log in.
Revision history for this message
Robert Collins (lifeless) wrote : Posted in a previous version of this proposal

This makes 2a the default format.

The web diff will be overly large - there are many approved components
of this branch currently landing on PQM.

So to review, you'll probably want to pull my bzr.dev once the current
branch has landed and merge. I'll do that myself and update the branch,
but even the lp will take hours to get up to speed.

Revision history for this message
Robert Collins (lifeless) wrote :
Download full text (25.1 KiB)

The diff is likely still a problem - here is a manual diff.

=== modified file 'NEWS'
--- NEWS 2009-08-15 09:15:03 +0000
+++ NEWS 2009-08-17 23:19:17 +0000
@@ -9,6 +9,21 @@
 In Development
 ##############

+Compatibility Breaks
+********************
+
+* The default format for bzr is now ``2a``. This format brings many
+ significant performance and size improvements. bzr can pull from
+ any existing repository into a ``2a`` one, but can only transfer
+ into ``rich-root`` repositories from ``2a``. The Upgrade guide
+ has more information about this change. (Robert Collins)
+
+New Features
+************
+
+Bug Fixes
+*********
+
 Improvements
 ************

@@ -16,6 +31,18 @@
   --version`` and ``bzr selftest``.
   (Martin Pool, #409137)

+Documentation
+*************
+
+API Changes
+***********
+
+Internals
+*********
+
+Testing
+*******
+
 bzr 1.18
 ########

@@ -58,6 +85,11 @@
 * StreamSource generates rich roots from non-rich root sources correctly
   now. (Andrew Bennetts, #368921)

+* When deciding whether a repository was compatible for upgrading or
+ fetching, we previously incorrectly checked the default repository
+ format for the bzrdir format, rather than the format that was actually
+ present on disk. (Martin Pool, #408824)
+
 Improvements
 ************

@@ -105,8 +137,8 @@
   can run the https tests. (Denys Duchier, #392401)

-bzr 1.18
-########
+bzr 1.18rc1
+###########

 :Codename: little traveller
 :1.18rc1: 2009-08-10

=== modified file 'bzrlib/branch.py'
--- bzrlib/branch.py 2009-08-17 06:17:21 +0000
+++ bzrlib/branch.py 2009-08-17 06:19:20 +0000
@@ -2067,7 +2067,7 @@
 BranchFormat.register_format(__format6)
 BranchFormat.register_format(__format7)
 BranchFormat.register_format(__format8)
-BranchFormat.set_default_format(__format6)
+BranchFormat.set_default_format(__format7)
 _legacy_formats = [BzrBranchFormat4(),
     ]
 network_format_registry.register(

=== modified file 'bzrlib/bzrdir.py'
--- bzrlib/bzrdir.py 2009-08-17 06:17:21 +0000
+++ bzrlib/bzrdir.py 2009-08-17 07:47:50 +0000
@@ -130,8 +130,7 @@

     def check_conversion_target(self, target_format):
         target_repo_format = target_format.repository_format
- source_repo_format = self._format.repository_format
- source_repo_format.check_conversion_target(target_repo_format)
+ self.open_repository()._format.check_conversion_target(target_repo_format)

     @staticmethod
     def _check_supported(format, allow_unsupported,
@@ -3865,11 +3864,11 @@
 # The following format should be an alias for the rich root equivalent
 # of the default format
 format_registry.register_metadir('default-rich-root',
- 'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack4',
- help='Default format, rich root variant. (needed for bzr-svn and bzr-git).',
- branch_format='bzrlib.branch.BzrBranchFormat6',
- tree_format='bzrlib.workingtree.WorkingTreeFormat4',
+ 'bzrlib.repofmt.groupcompress_repo.RepositoryFormat2a',
+ branch_format='bzrlib.branch.BzrBranchFormat7',
+ tree_format='bzrlib.workingtree.WorkingTreeFormat6',
     alias=True,
- )
+ help='Same as 2a.')
+
 # The current format that is made on 'bzr init'.
-format_re...

Revision history for this message
Robert Collins (lifeless) wrote :
Revision history for this message
John A Meinel (jameinel) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

...

> # The following format should be an alias for the rich root equivalent
> # of the default format
> format_registry.register_metadir('default-rich-root',
> - 'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack4',
> - help='Default format, rich root variant. (needed for bzr-svn and bzr-git).',
> - branch_format='bzrlib.branch.BzrBranchFormat6',
> - tree_format='bzrlib.workingtree.WorkingTreeFormat4',
> + 'bzrlib.repofmt.groupcompress_repo.RepositoryFormat2a',
> + branch_format='bzrlib.branch.BzrBranchFormat7',
> + tree_format='bzrlib.workingtree.WorkingTreeFormat6',
> alias=True,
> - )
> + help='Same as 2a.')
> +
> # The current format that is made on 'bzr init'.
> -format_registry.set_default('pack-0.92')
> +format_registry.set_default('2a')

^- I'm 75% sure that we want the default WT format to be
"WorkingTreeFormat5" and not 6. 5 includes support for filters, 6
brings in support for 'views'. And View support was considered
incomplete, and thus why it was split out into a different format.

...

v- Obviously changing the above to '5' will bump all of these as well.

> Format:
> control: Meta directory format 1
> - working tree: Working tree format 4
> + working tree: Working tree format 6
> branch: Branch format 4
> repository: Weave repository format 6
>
> @@ -453,7 +449,7 @@
>
...

> -__default_format = WorkingTreeFormat4()
> +__default_format = WorkingTreeFormat6()
> WorkingTreeFormat.register_format(__default_format)
> -WorkingTreeFormat.register_format(WorkingTreeFormat6())
> WorkingTreeFormat.register_format(WorkingTreeFormat5())
> +WorkingTreeFormat.register_format(WorkingTreeFormat4())
> WorkingTreeFormat.register_format(WorkingTreeFormat3())
> WorkingTreeFormat.set_default_format(__default_format)
> # formats which have no format string are not discoverable

^- This would also be effected.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkqKrzsACgkQJdeBCYSNAAONjACgnQBU95OlegGgtPzeaPVesvxO
/p0AnR+zohxUXfeHnv3QfQ3Q4RT+tcAc
=3UXs
-----END PGP SIGNATURE-----

Revision history for this message
John A Meinel (jameinel) wrote :

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Robert Collins wrote:
> Robert Collins has proposed merging lp:~lifeless/bzr/bug-398668 into lp:bzr.
>
> The diff is likely still a problem - here is a manual diff.

Sorry, I meant to include:
  review: approve

Provided there is agreement about WT5 vs WT6.

John
=:->

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkqKr1MACgkQJdeBCYSNAAMrAwCfSQLQ5ykqfetCyw2Fdp2YqGDT
NP4AnRP63XK5SOcngerDN+SdwjWUFc+l
=cqKQ
-----END PGP SIGNATURE-----

review: Approve
Revision history for this message
Robert Collins (lifeless) wrote :

On Tue, 2009-08-18 at 13:42 +0000, John A Meinel wrote:
> Review: Approve
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Robert Collins wrote:
> > Robert Collins has proposed merging lp:~lifeless/bzr/bug-398668 into lp:bzr.
> >
> > The diff is likely still a problem - here is a manual diff.
>
> Sorry, I meant to include:
> review: approve
>
> Provided there is agreement about WT5 vs WT6.

2a is format 6, and thats a supported format. Assuming that you're
right, we need to actually downgrade 2a in 1.16/1.17/1.18 as well -
definitely out of scope for this patch - and while changing the default
will increase the number of 2a users out there, we have from now until
the release to decide on this.

There is one outstanding log test I need to change as well, but I'll
land that change asynchronously - I don't want to let this [somewhat
fragile branch] bitrot at all.

Thanks for the review.

-Rob

Revision history for this message
Ian Clatworthy (ian-clatworthy) wrote :

Robert Collins wrote:
> On Tue, 2009-08-18 at 13:42 +0000, John A Meinel wrote:
>> Review: Approve
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Robert Collins wrote:
>>> Robert Collins has proposed merging lp:~lifeless/bzr/bug-398668 into lp:bzr.
>>>
>>> The diff is likely still a problem - here is a manual diff.
>> Sorry, I meant to include:
>> review: approve
>>
>> Provided there is agreement about WT5 vs WT6.
>
> 2a is format 6, and thats a supported format. Assuming that you're
> right, we need to actually downgrade 2a in 1.16/1.17/1.18 as well -

I'd prefer to keep the format exactly as it is now and stay with WT6.
I'm happy to make filtered views an experimental-only feature for 2.0,
say so loudly in the doc and hide the view command if appropriate. But I
don't want to remove the ability to store the filtered view metadata in
the default format.

Ian C.

Revision history for this message
Robert Collins (lifeless) wrote :

On Wed, 2009-08-19 at 01:03 +0000, Ian Clatworthy wrote:
>
> > 2a is format 6, and thats a supported format. Assuming that you're
> > right, we need to actually downgrade 2a in 1.16/1.17/1.18 as well -
>
> I'd prefer to keep the format exactly as it is now and stay with WT6.
> I'm happy to make filtered views an experimental-only feature for 2.0,
> say so loudly in the doc and hide the view command if appropriate. But
> I
> don't want to remove the ability to store the filtered view metadata
> in
> the default format.

I don't have any particular opinion.

The default is 2a with wt6 trees, at this point.

Cheers,
Rob

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'NEWS'
2--- NEWS 2009-08-18 07:20:02 +0000
3+++ NEWS 2009-08-18 20:35:49 +0000
4@@ -28,6 +28,43 @@
5 Compatibility Breaks
6 ********************
7
8+* The default format for bzr is now ``2a``. This format brings many
9+ significant performance and size improvements. bzr can pull from
10+ any existing repository into a ``2a`` one, but can only transfer
11+ into ``rich-root`` repositories from ``2a``. The Upgrade guide
12+ has more information about this change. (Robert Collins)
13+
14+New Features
15+************
16+
17+Bug Fixes
18+*********
19+
20+Improvements
21+************
22+
23+* A better description of the platform is shown in crash tracebacks, ``bzr
24+ --version`` and ``bzr selftest``.
25+ (Martin Pool, #409137)
26+
27+Documentation
28+*************
29+
30+API Changes
31+***********
32+
33+Internals
34+*********
35+
36+Testing
37+*******
38+
39+bzr 1.18
40+########
41+
42+Compatibility Breaks
43+********************
44+
45 * Committing directly to a stacked branch from a lightweight checkout will
46 no longer work. In previous versions this would appear to work but would
47 generate repositories with insufficient data to create deltas, leading
48@@ -116,8 +153,8 @@
49 can run the https tests. (Denys Duchier, #392401)
50
51
52-bzr 1.18
53-########
54+bzr 1.18rc1
55+###########
56
57 :Codename: little traveller
58 :1.18rc1: 2009-08-10
59
60=== modified file 'bzrlib/branch.py'
61--- bzrlib/branch.py 2009-08-17 06:17:21 +0000
62+++ bzrlib/branch.py 2009-08-18 20:35:49 +0000
63@@ -2067,7 +2067,7 @@
64 BranchFormat.register_format(__format6)
65 BranchFormat.register_format(__format7)
66 BranchFormat.register_format(__format8)
67-BranchFormat.set_default_format(__format6)
68+BranchFormat.set_default_format(__format7)
69 _legacy_formats = [BzrBranchFormat4(),
70 ]
71 network_format_registry.register(
72
73=== modified file 'bzrlib/bzrdir.py'
74--- bzrlib/bzrdir.py 2009-08-18 01:38:56 +0000
75+++ bzrlib/bzrdir.py 2009-08-18 20:35:50 +0000
76@@ -3864,11 +3864,11 @@
77 # The following format should be an alias for the rich root equivalent
78 # of the default format
79 format_registry.register_metadir('default-rich-root',
80- 'bzrlib.repofmt.pack_repo.RepositoryFormatKnitPack4',
81- help='Default format, rich root variant. (needed for bzr-svn and bzr-git).',
82- branch_format='bzrlib.branch.BzrBranchFormat6',
83- tree_format='bzrlib.workingtree.WorkingTreeFormat4',
84+ 'bzrlib.repofmt.groupcompress_repo.RepositoryFormat2a',
85+ branch_format='bzrlib.branch.BzrBranchFormat7',
86+ tree_format='bzrlib.workingtree.WorkingTreeFormat6',
87 alias=True,
88- )
89+ help='Same as 2a.')
90+
91 # The current format that is made on 'bzr init'.
92-format_registry.set_default('pack-0.92')
93+format_registry.set_default('2a')
94
95=== modified file 'bzrlib/tests/blackbox/test_info.py'
96--- bzrlib/tests/blackbox/test_info.py 2009-08-14 13:55:30 +0000
97+++ bzrlib/tests/blackbox/test_info.py 2009-08-18 20:35:50 +0000
98@@ -37,11 +37,7 @@
99
100 def setUp(self):
101 ExternalBase.setUp(self)
102- self._repo_strings = (
103- "1.6 or 1.6.1-rich-root "
104- "or 1.9 or 1.9-rich-root "
105- "or dirstate or dirstate-tags or "
106- "pack-0.92 or rich-root or rich-root-pack")
107+ self._repo_strings = "2a or development-subtree"
108
109 def test_info_non_existing(self):
110 if sys.platform == "win32":
111@@ -291,7 +287,7 @@
112
113 Format:
114 control: Meta directory format 1
115- working tree: Working tree format 4
116+ working tree: Working tree format 6
117 branch: Branch format 4
118 repository: Weave repository format 6
119
120@@ -453,7 +449,7 @@
121
122 Format:
123 control: Meta directory format 1
124- working tree: Working tree format 4
125+ working tree: Working tree format 6
126 branch: Branch format 4
127 repository: Weave repository format 6
128
129@@ -586,7 +582,7 @@
130
131 Format:
132 control: Meta directory format 1
133- working tree: Working tree format 4
134+ working tree: Working tree format 6
135 branch: %s
136 repository: %s
137
138@@ -617,14 +613,14 @@
139 # Out of date checkout
140 out, err = self.run_bzr('info -v tree/checkout')
141 self.assertEqualDiff(
142-"""Checkout (format: dirstate)
143+"""Checkout (format: unnamed)
144 Location:
145 checkout root: tree/checkout
146 checkout of branch: repo/branch
147
148 Format:
149 control: Meta directory format 1
150- working tree: Working tree format 4
151+ working tree: Working tree format 6
152 branch: %s
153 repository: %s
154
155@@ -656,14 +652,14 @@
156 tree3.add('b')
157 out, err = self.run_bzr('info tree/checkout --verbose')
158 self.assertEqualDiff(
159-"""Checkout (format: dirstate)
160+"""Checkout (format: unnamed)
161 Location:
162 checkout root: tree/checkout
163 checkout of branch: repo/branch
164
165 Format:
166 control: Meta directory format 1
167- working tree: Working tree format 4
168+ working tree: Working tree format 6
169 branch: %s
170 repository: %s
171
172@@ -705,7 +701,7 @@
173
174 Format:
175 control: Meta directory format 1
176- working tree: Working tree format 4
177+ working tree: Working tree format 6
178 branch: %s
179 repository: %s
180
181@@ -1131,7 +1127,7 @@
182 (False, False): 'Checkout',
183 }[(shared_repo is not None, light_checkout)]
184 format = {True: self._repo_strings,
185- False: 'dirstate'}[light_checkout]
186+ False: 'unnamed'}[light_checkout]
187 if repo_locked:
188 repo_locked = lco_tree.branch.repository.get_physical_lock_status()
189 if repo_locked or branch_locked or tree_locked:
190
191=== modified file 'bzrlib/tests/blackbox/test_init.py'
192--- bzrlib/tests/blackbox/test_init.py 2009-08-12 21:58:32 +0000
193+++ bzrlib/tests/blackbox/test_init.py 2009-08-18 20:35:50 +0000
194@@ -35,7 +35,7 @@
195
196 def setUp(self):
197 ExternalBase.setUp(self)
198- self._default_label = 'pack-0.92'
199+ self._default_label = '2a'
200
201 def test_init_with_format(self):
202 # Verify bzr init --format constructs something plausible
203
204=== modified file 'bzrlib/tests/blackbox/test_shared_repository.py'
205--- bzrlib/tests/blackbox/test_shared_repository.py 2009-03-23 14:59:43 +0000
206+++ bzrlib/tests/blackbox/test_shared_repository.py 2009-08-18 20:35:50 +0000
207@@ -27,7 +27,7 @@
208 def test_make_repository(self):
209 out, err = self.run_bzr("init-repository a")
210 self.assertEqual(out,
211-"""Shared repository with trees (format: pack-0.92)
212+"""Shared repository with trees (format: 2a)
213 Location:
214 shared repository: a
215 """)
216
217=== modified file 'bzrlib/tests/per_repository/test_add_fallback_repository.py'
218--- bzrlib/tests/per_repository/test_add_fallback_repository.py 2009-03-23 14:59:43 +0000
219+++ bzrlib/tests/per_repository/test_add_fallback_repository.py 2009-08-18 20:35:50 +0000
220@@ -29,14 +29,7 @@
221 class TestAddFallbackRepository(TestCaseWithRepository):
222
223 def test_add_fallback_repository(self):
224- if isinstance(self.repository_format, remote.RemoteRepositoryFormat):
225- # RemoteRepository by default builds a default format real
226- # repository, but the default format is unstackble. So explicitly
227- # make a stackable real repository and use that.
228- repo = self.make_repository('repo', format='1.9')
229- repo = bzrdir.BzrDir.open(self.get_url('repo')).open_repository()
230- else:
231- repo = self.make_repository('repo')
232+ repo = self.make_repository('repo')
233 tree = self.make_branch_and_tree('branch')
234 if not repo._format.supports_external_lookups:
235 self.assertRaises(errors.UnstackableRepositoryFormat,
236
237=== modified file 'bzrlib/tests/per_repository/test_repository.py'
238--- bzrlib/tests/per_repository/test_repository.py 2009-06-26 09:24:34 +0000
239+++ bzrlib/tests/per_repository/test_repository.py 2009-08-18 20:35:50 +0000
240@@ -929,8 +929,14 @@
241 transport.mkdir('.')
242 target_bzrdir = bzrdir_format.initialize_on_transport(transport)
243 branch = BzrBranchFormat6().initialize(target_bzrdir)
244- #branch = self.make_branch('repo/branch', format='pack-0.92')
245- self.make_branch('stack-on-me')
246+ if not repo.supports_rich_root():
247+ stack_on_format = "pack-0.92"
248+ else:
249+ if repo._format.supports_chks:
250+ stack_on_format = "2a"
251+ else:
252+ stack_on_format = "1.9-rich-root"
253+ self.make_branch('stack-on-me', format=stack_on_format)
254 self.make_bzrdir('.').get_config().set_default_stack_on('stack-on-me')
255 target = branch.bzrdir.clone(self.get_url('target'))
256 # The target branch supports stacking if the source repository does.
257
258=== modified file 'bzrlib/tests/test_branch.py'
259--- bzrlib/tests/test_branch.py 2009-07-10 05:49:34 +0000
260+++ bzrlib/tests/test_branch.py 2009-08-18 20:35:50 +0000
261@@ -40,6 +40,7 @@
262 BzrBranch5,
263 BzrBranchFormat5,
264 BzrBranchFormat6,
265+ BzrBranchFormat7,
266 PullResult,
267 _run_with_write_locked_target,
268 )
269@@ -60,7 +61,7 @@
270 def test_default_format(self):
271 # update this if you change the default branch format
272 self.assertIsInstance(BranchFormat.get_default_format(),
273- BzrBranchFormat6)
274+ BzrBranchFormat7)
275
276 def test_default_format_is_same_as_bzrdir_default(self):
277 # XXX: it might be nice if there was only one place the default was
278
279=== modified file 'bzrlib/tests/test_dirstate.py'
280--- bzrlib/tests/test_dirstate.py 2009-07-15 01:13:20 +0000
281+++ bzrlib/tests/test_dirstate.py 2009-08-18 20:35:50 +0000
282@@ -419,7 +419,7 @@
283 (('', '', tree.get_root_id()), # common details
284 [('d', '', 0, False, dirstate.DirState.NULLSTAT), # current tree
285 ('d', '', 0, False, rev_id), # first parent details
286- ('d', '', 0, False, rev_id2), # second parent details
287+ ('d', '', 0, False, rev_id), # second parent details
288 ])])
289 state = dirstate.DirState.from_tree(tree, 'dirstate')
290 self.check_state_with_reopen(expected_result, state)
291@@ -500,7 +500,7 @@
292 (('', '', tree.get_root_id()), # common details
293 [('d', '', 0, False, dirstate.DirState.NULLSTAT), # current tree
294 ('d', '', 0, False, rev_id), # first parent details
295- ('d', '', 0, False, rev_id2), # second parent details
296+ ('d', '', 0, False, rev_id), # second parent details
297 ]),
298 (('', 'a file', 'a-file-id'), # common
299 [('f', '', 0, False, dirstate.DirState.NULLSTAT), # current
300@@ -1000,7 +1000,7 @@
301 [(('', '', root_id), [
302 ('d', '', 0, False, dirstate.DirState.NULLSTAT),
303 ('d', '', 0, False, revid1),
304- ('d', '', 0, False, revid2)
305+ ('d', '', 0, False, revid1)
306 ])],
307 list(state._iter_entries()))
308 finally:
309@@ -1034,7 +1034,7 @@
310 (('', '', root_id), [
311 ('d', '', 0, False, dirstate.DirState.NULLSTAT),
312 ('d', '', 0, False, revid1.encode('utf8')),
313- ('d', '', 0, False, revid2.encode('utf8'))
314+ ('d', '', 0, False, revid1.encode('utf8'))
315 ]),
316 (('', 'a file', 'file-id'), [
317 ('a', '', 0, False, ''),
318
319=== modified file 'bzrlib/tests/test_foreign.py'
320--- bzrlib/tests/test_foreign.py 2009-08-14 04:30:32 +0000
321+++ bzrlib/tests/test_foreign.py 2009-08-18 20:35:50 +0000
322@@ -320,7 +320,7 @@
323 foreign.update_workingtree_fileids(wt, target_basis)
324 wt.lock_read()
325 try:
326- self.assertEquals([root_id, "bla-b"], list(wt.inventory))
327+ self.assertEquals(set([root_id, "bla-b"]), set(wt.inventory))
328 finally:
329 wt.unlock()
330
331
332=== modified file 'bzrlib/tests/test_log.py'
333--- bzrlib/tests/test_log.py 2009-08-17 19:31:29 +0000
334+++ bzrlib/tests/test_log.py 2009-08-18 20:35:50 +0000
335@@ -142,6 +142,9 @@
336 lf = LogCatcher()
337 log.show_log(wt.branch, lf, verbose=True)
338 committed_msg = lf.revisions[0].rev.message
339+ if msg == committed_msg:
340+ raise tests.KnownFailure(
341+ "Commit message was preserved, but it wasn't expected to be.")
342 self.assertNotEqual(msg, committed_msg)
343 self.assertTrue(len(committed_msg) > len(msg))
344
345
346=== modified file 'bzrlib/tests/test_remote.py'
347--- bzrlib/tests/test_remote.py 2009-08-14 00:55:42 +0000
348+++ bzrlib/tests/test_remote.py 2009-08-18 20:35:50 +0000
349@@ -661,8 +661,9 @@
350 network_name = reference_format.network_name()
351 client.add_expected_call(
352 'BzrDir.create_repository', ('quack/',
353- 'Bazaar pack repository format 1 (needs bzr 0.92)\n', 'False'),
354- 'success', ('ok', 'no', 'no', 'no', network_name))
355+ 'Bazaar repository format 2a (needs bzr 1.16 or later)\n',
356+ 'False'),
357+ 'success', ('ok', 'yes', 'yes', 'yes', network_name))
358 a_bzrdir = RemoteBzrDir(transport, remote.RemoteBzrDirFormat(),
359 _client=client)
360 repo = a_bzrdir.create_repository()
361@@ -670,9 +671,9 @@
362 self.assertIsInstance(repo, remote.RemoteRepository)
363 # its format should have the settings from the response
364 format = repo._format
365- self.assertFalse(format.rich_root_data)
366- self.assertFalse(format.supports_tree_reference)
367- self.assertFalse(format.supports_external_lookups)
368+ self.assertTrue(format.rich_root_data)
369+ self.assertTrue(format.supports_tree_reference)
370+ self.assertTrue(format.supports_external_lookups)
371 self.assertEqual(network_name, format.network_name())
372
373
374@@ -2354,6 +2355,7 @@
375 """
376 # Define a stream using generators so that it isn't rewindable.
377 inv = inventory.Inventory(revision_id='rev1')
378+ inv.root.revision = 'rev1'
379 def stream_with_inv_delta():
380 yield ('inventories', inventories_substream())
381 yield ('inventory-deltas', inventory_delta_substream())
382
383=== modified file 'bzrlib/tests/test_selftest.py'
384--- bzrlib/tests/test_selftest.py 2009-08-15 09:15:03 +0000
385+++ bzrlib/tests/test_selftest.py 2009-08-18 20:35:50 +0000
386@@ -40,6 +40,7 @@
387 workingtree,
388 )
389 from bzrlib.repofmt import (
390+ groupcompress_repo,
391 pack_repo,
392 weaverepo,
393 )
394@@ -215,24 +216,24 @@
395 from bzrlib.tests.per_repository import formats_to_scenarios
396 formats = [("(c)", remote.RemoteRepositoryFormat()),
397 ("(d)", repository.format_registry.get(
398- 'Bazaar pack repository format 1 (needs bzr 0.92)\n'))]
399+ 'Bazaar repository format 2a (needs bzr 1.16 or later)\n'))]
400 no_vfs_scenarios = formats_to_scenarios(formats, "server", "readonly",
401 None)
402 vfs_scenarios = formats_to_scenarios(formats, "server", "readonly",
403 vfs_transport_factory="vfs")
404 # no_vfs generate scenarios without vfs_transport_factory
405- self.assertEqual([
406+ expected = [
407 ('RemoteRepositoryFormat(c)',
408 {'bzrdir_format': remote.RemoteBzrDirFormat(),
409 'repository_format': remote.RemoteRepositoryFormat(),
410 'transport_readonly_server': 'readonly',
411 'transport_server': 'server'}),
412- ('RepositoryFormatKnitPack1(d)',
413+ ('RepositoryFormat2a(d)',
414 {'bzrdir_format': bzrdir.BzrDirMetaFormat1(),
415- 'repository_format': pack_repo.RepositoryFormatKnitPack1(),
416+ 'repository_format': groupcompress_repo.RepositoryFormat2a(),
417 'transport_readonly_server': 'readonly',
418- 'transport_server': 'server'})],
419- no_vfs_scenarios)
420+ 'transport_server': 'server'})]
421+ self.assertEqual(expected, no_vfs_scenarios)
422 self.assertEqual([
423 ('RemoteRepositoryFormat(c)',
424 {'bzrdir_format': remote.RemoteBzrDirFormat(),
425@@ -240,9 +241,9 @@
426 'transport_readonly_server': 'readonly',
427 'transport_server': 'server',
428 'vfs_transport_factory': 'vfs'}),
429- ('RepositoryFormatKnitPack1(d)',
430+ ('RepositoryFormat2a(d)',
431 {'bzrdir_format': bzrdir.BzrDirMetaFormat1(),
432- 'repository_format': pack_repo.RepositoryFormatKnitPack1(),
433+ 'repository_format': groupcompress_repo.RepositoryFormat2a(),
434 'transport_readonly_server': 'readonly',
435 'transport_server': 'server',
436 'vfs_transport_factory': 'vfs'})],
437
438=== modified file 'bzrlib/tests/test_smart.py'
439--- bzrlib/tests/test_smart.py 2009-08-17 20:53:59 +0000
440+++ bzrlib/tests/test_smart.py 2009-08-18 20:35:50 +0000
441@@ -456,7 +456,7 @@
442 def test_stacked_branch(self):
443 """Opening a stacked branch does not open the stacked-on branch."""
444 trunk = self.make_branch('trunk')
445- feature = self.make_branch('feature', format='1.9')
446+ feature = self.make_branch('feature')
447 feature.set_stacked_on_url(trunk.base)
448 opened_branches = []
449 Branch.hooks.install_named_hook('open', opened_branches.append, None)
450
451=== modified file 'bzrlib/tests/test_version_info.py'
452--- bzrlib/tests/test_version_info.py 2009-04-06 02:54:14 +0000
453+++ bzrlib/tests/test_version_info.py 2009-08-18 20:35:50 +0000
454@@ -148,12 +148,11 @@
455 stanza = regen(check_for_clean=True, include_file_revisions=True)
456 self.assertEqual(['False'], stanza.get_all('clean'))
457
458- # XXX: This assumes it's being run against a repository that updates
459- # the root revision on every commit. Newer ones that use
460- # RootCommitBuilder won't update it on each commit.
461+ # This assumes it's being run against a tree that does not update the
462+ # root revision on every commit.
463 file_rev_stanza = get_one_stanza(stanza, 'file-revisions')
464 self.assertEqual(['', 'a', 'b', 'c'], file_rev_stanza.get_all('path'))
465- self.assertEqual(['r3', 'r3', 'r2', 'unversioned'],
466+ self.assertEqual(['r1', 'r3', 'r2', 'unversioned'],
467 file_rev_stanza.get_all('revision'))
468 os.remove('branch/c')
469
470@@ -171,7 +170,7 @@
471 file_rev_stanza = get_one_stanza(stanza, 'file-revisions')
472 self.assertEqual(['', 'a', 'b', 'c', 'd'],
473 file_rev_stanza.get_all('path'))
474- self.assertEqual(['r3', 'modified', 'renamed to d', 'new',
475+ self.assertEqual(['r1', 'modified', 'renamed to d', 'new',
476 'renamed from b'],
477 file_rev_stanza.get_all('revision'))
478
479@@ -181,7 +180,7 @@
480 stanza = regen(check_for_clean=True, include_file_revisions=True)
481 file_rev_stanza = get_one_stanza(stanza, 'file-revisions')
482 self.assertEqual(['', 'a', 'c', 'd'], file_rev_stanza.get_all('path'))
483- self.assertEqual(['r4', 'r4', 'unversioned', 'removed'],
484+ self.assertEqual(['r1', 'r4', 'unversioned', 'removed'],
485 file_rev_stanza.get_all('revision'))
486
487 def test_python_null(self):
488
489=== modified file 'bzrlib/workingtree.py'
490--- bzrlib/workingtree.py 2009-08-14 02:35:01 +0000
491+++ bzrlib/workingtree.py 2009-08-18 20:35:50 +0000
492@@ -3030,10 +3030,10 @@
493 return self.get_format_string()
494
495
496-__default_format = WorkingTreeFormat4()
497+__default_format = WorkingTreeFormat6()
498 WorkingTreeFormat.register_format(__default_format)
499-WorkingTreeFormat.register_format(WorkingTreeFormat6())
500 WorkingTreeFormat.register_format(WorkingTreeFormat5())
501+WorkingTreeFormat.register_format(WorkingTreeFormat4())
502 WorkingTreeFormat.register_format(WorkingTreeFormat3())
503 WorkingTreeFormat.set_default_format(__default_format)
504 # formats which have no format string are not discoverable