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

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

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

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

Fix test_branch_from_trivial_stacked_branch_streaming_acceptance to work
with rich root formats, pending work on bug 375013.

Basically, committing to stacked branches is broken if there is any
actual content, but this test isn't trying to exercise that - and this
prevents changing the default in our test suite to a rich root format.

So I've fixed the test, and that may permit us to reduce the priority of
the bug (as its an existing defect in bzr, for any rich root format).

-Rob

Revision history for this message
Martin Pool (mbp) : Posted in a previous version of this proposal
review: Approve
Revision history for this message
Vincent Ladeuil (vila) wrote :

With the clarifications given on IRC, this sounds trivial enough.

review: Approve
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-375013 into lp:bzr.
>
>
>
=== modified file 'bzrlib/__init__.py'
- --- bzrlib/__init__.py 2009-07-20 11:27:05 +0000
+++ bzrlib/__init__.py 2009-08-11 03:02:56 +0000
@@ -50,7 +50,7 @@
 # Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a
 # releaselevel of 'dev' for unreleased under-development code.

- -version_info = (1, 18, 0, 'dev', 0)
+version_info = (2, 0, 0, 'dev', 0)

^- So is this official then?

Certainly it seems spurious to bring this in as part of the rest of the
patch.

Especially given that you didn't bump "api_minimum_version" so I don't
see why it is relevant.

But hey, if we are officially doing it, then it doesn't really matter.

Anyway, if we are going to be rejecting commit, then we probably should
open another bug about:

"bzr merge BUNDLE" doesn't honor stacking invariants in stacked
repository, and do a similar "reject if local repository is stacked".

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

iEYEARECAAYFAkqBhUIACgkQJdeBCYSNAANZqQCggLCnR404ukng6cI2Cjn13cMp
sUIAoJJC3NO/V8JkbJqdgmrsIrq1mGZX
=8TWr
-----END PGP SIGNATURE-----

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

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

...

> -version_info = (1, 18, 0, 'dev', 0)
> +version_info = (2, 0, 0, 'dev', 0)
>
> ^- So is this official then?
>
> Certainly it seems spurious to bring this in as part of the rest of the
> patch.
>

Please ignore me. It seems it is just MAD race again. I can see that
Martin did, indeed, update to 2.0 on bzr trunk, and probably you just
got that patch before Launchpad did... *sigh*.

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

iEYEARECAAYFAkqBmwYACgkQJdeBCYSNAAOFhwCgsHwF2S/WTdoJ0Jba7kDizPlA
gqEAmgPRGSsCU5bgEIb5Cu7DOjR9RosS
=s4L0
-----END PGP SIGNATURE-----

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'NEWS'
--- NEWS 2009-08-11 02:58:23 +0000
+++ NEWS 2009-08-11 10:35:16 +0000
@@ -12,6 +12,12 @@
12Compatibility Breaks12Compatibility Breaks
13********************13********************
1414
15* Committing directly to a stacked branch from a lightweight checkout will
16 no longer work. In previous versions this would appear to work but would
17 generate repositories with insufficient data to create deltas, leading
18 to later errors when branching or reading from the repository.
19 (Robert Collins, bug #375013)
20
15New Features21New Features
16************22************
1723
1824
=== modified file 'bzrlib/repository.py'
--- bzrlib/repository.py 2009-08-06 02:23:37 +0000
+++ bzrlib/repository.py 2009-08-11 10:35:16 +0000
@@ -1695,6 +1695,10 @@
1695 :param revprops: Optional dictionary of revision properties.1695 :param revprops: Optional dictionary of revision properties.
1696 :param revision_id: Optional revision id.1696 :param revision_id: Optional revision id.
1697 """1697 """
1698 if self._fallback_repositories:
1699 raise errors.BzrError("Cannot commit from a lightweight checkout "
1700 "to a stacked branch. See "
1701 "https://bugs.launchpad.net/bzr/+bug/375013 for details.")
1698 result = self._commit_builder_class(self, parents, config,1702 result = self._commit_builder_class(self, parents, config,
1699 timestamp, timezone, committer, revprops, revision_id)1703 timestamp, timezone, committer, revprops, revision_id)
1700 self.start_write_group()1704 self.start_write_group()
17011705
=== modified file 'bzrlib/tests/blackbox/test_branch.py'
--- bzrlib/tests/blackbox/test_branch.py 2009-08-03 04:19:03 +0000
+++ bzrlib/tests/blackbox/test_branch.py 2009-08-11 10:35:16 +0000
@@ -149,29 +149,6 @@
149class TestBranchStacked(ExternalBase):149class TestBranchStacked(ExternalBase):
150 """Tests for branch --stacked"""150 """Tests for branch --stacked"""
151151
152 def check_shallow_branch(self, branch_revid, stacked_on):
153 """Assert that the branch 'newbranch' has been published correctly.
154
155 :param stacked_on: url of a branch this one is stacked upon.
156 :param branch_revid: a revision id that should be the only
157 revision present in the stacked branch, and it should not be in
158 the reference branch.
159 """
160 new_branch = branch.Branch.open('newbranch')
161 # The branch refers to the mainline
162 self.assertEqual(stacked_on, new_branch.get_stacked_on_url())
163 # and the branch's work was pushed
164 self.assertTrue(new_branch.repository.has_revision(branch_revid))
165 # The newly committed revision shoud be present in the stacked branch,
166 # but not in the stacked-on branch. Because stacking is set up by the
167 # branch object, if we open the stacked branch's repository directly,
168 # bypassing the branch, we see only what's in the stacked repository.
169 stacked_repo = bzrdir.BzrDir.open('newbranch').open_repository()
170 stacked_repo_revisions = set(stacked_repo.all_revision_ids())
171 if len(stacked_repo_revisions) != 1:
172 self.fail("wrong revisions in stacked repository: %r"
173 % (stacked_repo_revisions,))
174
175 def assertRevisionInRepository(self, repo_path, revid):152 def assertRevisionInRepository(self, repo_path, revid):
176 """Check that a revision is in a repository, disregarding stacking."""153 """Check that a revision is in a repository, disregarding stacking."""
177 repo = bzrdir.BzrDir.open(repo_path).open_repository()154 repo = bzrdir.BzrDir.open(repo_path).open_repository()
@@ -198,12 +175,14 @@
198 format='1.9')175 format='1.9')
199 branch_tree.branch.set_stacked_on_url(trunk_tree.branch.base)176 branch_tree.branch.set_stacked_on_url(trunk_tree.branch.base)
200 # with some work on it177 # with some work on it
201 branch_tree.commit('moar work plz')178 work_tree = trunk_tree.branch.bzrdir.sprout('local').open_workingtree()
179 work_tree.commit('moar work plz')
180 work_tree.branch.push(branch_tree.branch)
202 # branching our local branch gives us a new stacked branch pointing at181 # branching our local branch gives us a new stacked branch pointing at
203 # mainline.182 # mainline.
204 out, err = self.run_bzr(['branch', 'branch', 'newbranch'])183 out, err = self.run_bzr(['branch', 'branch', 'newbranch'])
205 self.assertEqual('', out)184 self.assertEqual('', out)
206 self.assertEqual('Branched 1 revision(s).\n',185 self.assertEqual('Branched 2 revision(s).\n',
207 err)186 err)
208 # it should have preserved the branch format, and so it should be187 # it should have preserved the branch format, and so it should be
209 # capable of supporting stacking, but not actually have a stacked_on188 # capable of supporting stacking, but not actually have a stacked_on
@@ -222,7 +201,9 @@
222 format='1.9')201 format='1.9')
223 branch_tree.branch.set_stacked_on_url(trunk_tree.branch.base)202 branch_tree.branch.set_stacked_on_url(trunk_tree.branch.base)
224 # with some work on it203 # with some work on it
225 branch_revid = branch_tree.commit('moar work plz')204 work_tree = trunk_tree.branch.bzrdir.sprout('local').open_workingtree()
205 branch_revid = work_tree.commit('moar work plz')
206 work_tree.branch.push(branch_tree.branch)
226 # you can chain branches on from there207 # you can chain branches on from there
227 out, err = self.run_bzr(['branch', 'branch', '--stacked', 'branch2'])208 out, err = self.run_bzr(['branch', 'branch', '--stacked', 'branch2'])
228 self.assertEqual('', out)209 self.assertEqual('', out)
@@ -231,7 +212,8 @@
231 self.assertEqual(branch_tree.branch.base,212 self.assertEqual(branch_tree.branch.base,
232 branch.Branch.open('branch2').get_stacked_on_url())213 branch.Branch.open('branch2').get_stacked_on_url())
233 branch2_tree = WorkingTree.open('branch2')214 branch2_tree = WorkingTree.open('branch2')
234 branch2_revid = branch2_tree.commit('work on second stacked branch')215 branch2_revid = work_tree.commit('work on second stacked branch')
216 work_tree.branch.push(branch2_tree.branch)
235 self.assertRevisionInRepository('branch2', branch2_revid)217 self.assertRevisionInRepository('branch2', branch2_revid)
236 self.assertRevisionsInBranchRepository(218 self.assertRevisionsInBranchRepository(
237 [trunk_revid, branch_revid, branch2_revid],219 [trunk_revid, branch_revid, branch2_revid],
@@ -250,9 +232,8 @@
250 self.assertEqual('Created new stacked branch referring to %s.\n' %232 self.assertEqual('Created new stacked branch referring to %s.\n' %
251 trunk_tree.branch.base, err)233 trunk_tree.branch.base, err)
252 self.assertRevisionNotInRepository('newbranch', original_revid)234 self.assertRevisionNotInRepository('newbranch', original_revid)
253 new_tree = WorkingTree.open('newbranch')235 new_branch = branch.Branch.open('newbranch')
254 new_revid = new_tree.commit('new work')236 self.assertEqual(trunk_tree.branch.base, new_branch.get_stacked_on_url())
255 self.check_shallow_branch(new_revid, trunk_tree.branch.base)
256237
257 def test_branch_stacked_from_smart_server(self):238 def test_branch_stacked_from_smart_server(self):
258 # We can branch stacking on a smart server239 # We can branch stacking on a smart server
@@ -329,7 +310,9 @@
329 t.commit(message='commit %d' % count)310 t.commit(message='commit %d' % count)
330 tree2 = t.branch.bzrdir.sprout('feature', stacked=True311 tree2 = t.branch.bzrdir.sprout('feature', stacked=True
331 ).open_workingtree()312 ).open_workingtree()
332 tree2.commit('feature change')313 local_tree = t.branch.bzrdir.sprout('local-working').open_workingtree()
314 local_tree.commit('feature change')
315 local_tree.branch.push(tree2.branch)
333 self.reset_smart_call_log()316 self.reset_smart_call_log()
334 out, err = self.run_bzr(['branch', self.get_url('feature'),317 out, err = self.run_bzr(['branch', self.get_url('feature'),
335 'local-target'])318 'local-target'])
336319
=== modified file 'bzrlib/tests/per_branch/test_stacking.py'
--- bzrlib/tests/per_branch/test_stacking.py 2009-08-05 02:30:59 +0000
+++ bzrlib/tests/per_branch/test_stacking.py 2009-08-11 10:35:16 +0000
@@ -150,8 +150,8 @@
150 raise TestNotApplicable(e)150 raise TestNotApplicable(e)
151 # stacked repository151 # stacked repository
152 self.assertRevisionNotInRepository('newbranch', trunk_revid)152 self.assertRevisionNotInRepository('newbranch', trunk_revid)
153 new_tree = new_dir.open_workingtree()153 tree = new_dir.open_branch().create_checkout('local')
154 new_branch_revid = new_tree.commit('something local')154 new_branch_revid = tree.commit('something local')
155 self.assertRevisionNotInRepository('mainline', new_branch_revid)155 self.assertRevisionNotInRepository('mainline', new_branch_revid)
156 self.assertRevisionInRepository('newbranch', new_branch_revid)156 self.assertRevisionInRepository('newbranch', new_branch_revid)
157157
@@ -173,8 +173,8 @@
173 new_dir = remote_bzrdir.sprout('newbranch', stacked=True)173 new_dir = remote_bzrdir.sprout('newbranch', stacked=True)
174 # stacked repository174 # stacked repository
175 self.assertRevisionNotInRepository('newbranch', trunk_revid)175 self.assertRevisionNotInRepository('newbranch', trunk_revid)
176 new_tree = new_dir.open_workingtree()176 tree = new_dir.open_branch().create_checkout('local')
177 new_branch_revid = new_tree.commit('something local')177 new_branch_revid = tree.commit('something local')
178 self.assertRevisionNotInRepository('mainline', new_branch_revid)178 self.assertRevisionNotInRepository('mainline', new_branch_revid)
179 self.assertRevisionInRepository('newbranch', new_branch_revid)179 self.assertRevisionInRepository('newbranch', new_branch_revid)
180180
@@ -333,7 +333,8 @@
333333
334 def test_fetch_copies_from_stacked_on_and_stacked(self):334 def test_fetch_copies_from_stacked_on_and_stacked(self):
335 stacked, unstacked = self.prepare_stacked_on_fetch()335 stacked, unstacked = self.prepare_stacked_on_fetch()
336 stacked.commit('second commit', rev_id='rev2')336 tree = stacked.branch.create_checkout('local')
337 tree.commit('second commit', rev_id='rev2')
337 unstacked.fetch(stacked.branch.repository, 'rev2')338 unstacked.fetch(stacked.branch.repository, 'rev2')
338 unstacked.get_revision('rev1')339 unstacked.get_revision('rev1')
339 unstacked.get_revision('rev2')340 unstacked.get_revision('rev2')
@@ -355,13 +356,15 @@
355 stack_on.add('a')356 stack_on.add('a')
356 stack_on.commit('base commit')357 stack_on.commit('base commit')
357 stacked_dir = stack_on.bzrdir.sprout('stacked', stacked=True)358 stacked_dir = stack_on.bzrdir.sprout('stacked', stacked=True)
358 stacked_tree = stacked_dir.open_workingtree()359 stacked_branch = stacked_dir.open_branch()
360 local_tree = stack_on.bzrdir.sprout('local').open_workingtree()
359 for i in range(20):361 for i in range(20):
360 text_lines[0] = 'changed in %d\n' % i362 text_lines[0] = 'changed in %d\n' % i
361 self.build_tree_contents([('stacked/a', ''.join(text_lines))])363 self.build_tree_contents([('local/a', ''.join(text_lines))])
362 stacked_tree.commit('commit %d' % i)364 local_tree.commit('commit %d' % i)
363 stacked_tree.branch.repository.pack()365 local_tree.branch.push(stacked_branch)
364 check.check_dwim(stacked_tree.branch.base, False, True, True)366 stacked_branch.repository.pack()
367 check.check_dwim(stacked_branch.base, False, True, True)
365368
366 def test_pull_delta_when_stacked(self):369 def test_pull_delta_when_stacked(self):
367 if not self.branch_format.supports_stacking():370 if not self.branch_format.supports_stacking():
@@ -470,7 +473,8 @@
470 except errors.NoWorkingTree:473 except errors.NoWorkingTree:
471 stacked = stacked_dir.open_branch().create_checkout(474 stacked = stacked_dir.open_branch().create_checkout(
472 'stacked-checkout', lightweight=True)475 'stacked-checkout', lightweight=True)
473 stacked.commit('second commit', rev_id='rev2')476 tree = stacked.branch.create_checkout('local')
477 tree.commit('second commit', rev_id='rev2')
474 # Sanity check: stacked's repo should not contain rev1, otherwise this478 # Sanity check: stacked's repo should not contain rev1, otherwise this
475 # test isn't testing what it's supposed to.479 # test isn't testing what it's supposed to.
476 repo = stacked.branch.repository.bzrdir.open_repository()480 repo = stacked.branch.repository.bzrdir.open_repository()
477481
=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- bzrlib/tests/per_repository/test_commit_builder.py 2009-05-06 05:36:28 +0000
+++ bzrlib/tests/per_repository/test_commit_builder.py 2009-08-11 10:35:16 +0000
@@ -1267,3 +1267,19 @@
1267 self.addCleanup(branch.repository.abort_write_group)1267 self.addCleanup(branch.repository.abort_write_group)
1268 self.assertRaises(ValueError, builder.commit,1268 self.assertRaises(ValueError, builder.commit,
1269 u'Invalid\r\ncommit message\r\n')1269 u'Invalid\r\ncommit message\r\n')
1270
1271 def test_stacked_repositories_reject_commit_builder(self):
1272 # As per bug 375013, committing to stacked repositories is currently
1273 # broken, so repositories with fallbacks refuse to hand out a commit
1274 # builder.
1275 repo_basis = self.make_repository('basis')
1276 branch = self.make_branch('local')
1277 repo_local = branch.repository
1278 try:
1279 repo_local.add_fallback_repository(repo_basis)
1280 except errors.UnstackableRepositoryFormat:
1281 raise tests.TestNotApplicable("not a stackable format.")
1282 repo_local.lock_write()
1283 self.addCleanup(repo_local.unlock)
1284 self.assertRaises(errors.BzrError, repo_local.get_commit_builder,
1285 branch, [], branch.get_config())
12701286
=== modified file 'bzrlib/tests/per_repository_reference/test_check.py'
--- bzrlib/tests/per_repository_reference/test_check.py 2009-03-23 14:59:43 +0000
+++ bzrlib/tests/per_repository_reference/test_check.py 2009-08-11 10:35:16 +0000
@@ -33,8 +33,9 @@
33 referring = self.make_branch_and_tree('referring')33 referring = self.make_branch_and_tree('referring')
34 readonly_base = self.readonly_repository('base')34 readonly_base = self.readonly_repository('base')
35 referring.branch.repository.add_fallback_repository(readonly_base)35 referring.branch.repository.add_fallback_repository(readonly_base)
36 self.build_tree_contents([('referring/file', 'change')])36 local_tree = referring.branch.create_checkout('local')
37 rev2_id = referring.commit('two')37 self.build_tree_contents([('local/file', 'change')])
38 rev2_id = local_tree.commit('two')
38 check_result = referring.branch.repository.check(39 check_result = referring.branch.repository.check(
39 referring.branch.repository.all_revision_ids())40 referring.branch.repository.all_revision_ids())
40 check_result.report_results(verbose=False)41 check_result.report_results(verbose=False)
4142
=== modified file 'bzrlib/tests/test_pack_repository.py'
--- bzrlib/tests/test_pack_repository.py 2009-07-17 10:38:41 +0000
+++ bzrlib/tests/test_pack_repository.py 2009-08-11 10:35:16 +0000
@@ -865,7 +865,8 @@
865 base.commit('foo')865 base.commit('foo')
866 referencing = self.make_branch_and_tree('repo', format=self.get_format())866 referencing = self.make_branch_and_tree('repo', format=self.get_format())
867 referencing.branch.repository.add_fallback_repository(base.branch.repository)867 referencing.branch.repository.add_fallback_repository(base.branch.repository)
868 referencing.commit('bar')868 local_tree = referencing.branch.create_checkout('local')
869 local_tree.commit('bar')
869 new_instance = referencing.bzrdir.open_repository()870 new_instance = referencing.bzrdir.open_repository()
870 new_instance.lock_read()871 new_instance.lock_read()
871 self.addCleanup(new_instance.unlock)872 self.addCleanup(new_instance.unlock)
@@ -884,13 +885,14 @@
884 # and max packs policy - so we are checking the policy is honoured885 # and max packs policy - so we are checking the policy is honoured
885 # in the test. But for now 11 commits is not a big deal in a single886 # in the test. But for now 11 commits is not a big deal in a single
886 # test.887 # test.
888 local_tree = tree.branch.create_checkout('local')
887 for x in range(9):889 for x in range(9):
888 tree.commit('commit %s' % x)890 local_tree.commit('commit %s' % x)
889 # there should be 9 packs:891 # there should be 9 packs:
890 index = self.index_class(trans, 'pack-names', None)892 index = self.index_class(trans, 'pack-names', None)
891 self.assertEqual(9, len(list(index.iter_all_entries())))893 self.assertEqual(9, len(list(index.iter_all_entries())))
892 # committing one more should coalesce to 1 of 10.894 # committing one more should coalesce to 1 of 10.
893 tree.commit('commit triggering pack')895 local_tree.commit('commit triggering pack')
894 index = self.index_class(trans, 'pack-names', None)896 index = self.index_class(trans, 'pack-names', None)
895 self.assertEqual(1, len(list(index.iter_all_entries())))897 self.assertEqual(1, len(list(index.iter_all_entries())))
896 # packing should not damage data898 # packing should not damage data
@@ -909,7 +911,7 @@
909 # in the obsolete_packs directory.911 # in the obsolete_packs directory.
910 large_pack_name = list(index.iter_all_entries())[0][1][0]912 large_pack_name = list(index.iter_all_entries())[0][1][0]
911 # finally, committing again should not touch the large pack.913 # finally, committing again should not touch the large pack.
912 tree.commit('commit not triggering pack')914 local_tree.commit('commit not triggering pack')
913 index = self.index_class(trans, 'pack-names', None)915 index = self.index_class(trans, 'pack-names', None)
914 self.assertEqual(2, len(list(index.iter_all_entries())))916 self.assertEqual(2, len(list(index.iter_all_entries())))
915 pack_names = [node[1][0] for node in index.iter_all_entries()]917 pack_names = [node[1][0] for node in index.iter_all_entries()]
916918
=== modified file 'bzrlib/tests/test_remote.py'
--- bzrlib/tests/test_remote.py 2009-07-30 04:27:05 +0000
+++ bzrlib/tests/test_remote.py 2009-08-11 10:35:16 +0000
@@ -2651,7 +2651,8 @@
2651 tree1.commit('rev1', rev_id='rev1')2651 tree1.commit('rev1', rev_id='rev1')
2652 tree2 = tree1.branch.bzrdir.sprout('tree2', stacked=True2652 tree2 = tree1.branch.bzrdir.sprout('tree2', stacked=True
2653 ).open_workingtree()2653 ).open_workingtree()
2654 tree2.commit('local changes make me feel good.')2654 local_tree = tree2.branch.create_checkout('local')
2655 local_tree.commit('local changes make me feel good.')
2655 branch2 = Branch.open(self.get_url('tree2'))2656 branch2 = Branch.open(self.get_url('tree2'))
2656 branch2.lock_read()2657 branch2.lock_read()
2657 self.addCleanup(branch2.unlock)2658 self.addCleanup(branch2.unlock)
@@ -2727,7 +2728,8 @@
2727 _, stacked = self.prepare_stacked_remote_branch()2728 _, stacked = self.prepare_stacked_remote_branch()
2728 tree = stacked.bzrdir.sprout('tree3', stacked=True2729 tree = stacked.bzrdir.sprout('tree3', stacked=True
2729 ).open_workingtree()2730 ).open_workingtree()
2730 tree.commit('more local changes are better')2731 local_tree = tree.branch.create_checkout('local-tree3')
2732 local_tree.commit('more local changes are better')
2731 branch = Branch.open(self.get_url('tree3'))2733 branch = Branch.open(self.get_url('tree3'))
2732 branch.lock_read()2734 branch.lock_read()
2733 return None, branch2735 return None, branch
@@ -2744,8 +2746,9 @@
2744 # stacked upon sources in topological order.2746 # stacked upon sources in topological order.
2745 rev_ord, expected_revs = self.get_ordered_revs('knit', 'topological')2747 rev_ord, expected_revs = self.get_ordered_revs('knit', 'topological')
2746 self.assertEqual(expected_revs, rev_ord)2748 self.assertEqual(expected_revs, rev_ord)
2747 # Getting topological sort requires VFS calls still2749 # Getting topological sort requires VFS calls still - one of which is
2748 self.assertLength(12, self.hpss_calls)2750 # pushing up from the bound branch.
2751 self.assertLength(13, self.hpss_calls)
27492752
2750 def test_stacked_get_stream_groupcompress(self):2753 def test_stacked_get_stream_groupcompress(self):
2751 # Repository._get_source.get_stream() from a stacked repository with2754 # Repository._get_source.get_stream() from a stacked repository with