Rev 4057: Move the fetch control attributes from Repository to RepositoryFormat. in http://people.ubuntu.com/~robertc/baz2.0/RemoteRepository._format
Robert Collins
robertc at robertcollins.net
Fri Feb 27 01:02:45 GMT 2009
At http://people.ubuntu.com/~robertc/baz2.0/RemoteRepository._format
------------------------------------------------------------
revno: 4057
revision-id: robertc at robertcollins.net-20090227010240-35dzaxn8bah0razi
parent: robertc at robertcollins.net-20090226110120-x8x9dsy4fjemgaxq
committer: Robert Collins <robertc at robertcollins.net>
branch nick: RemoteRepository._format
timestamp: Fri 2009-02-27 12:02:40 +1100
message:
Move the fetch control attributes from Repository to RepositoryFormat.
=== modified file 'NEWS'
--- a/NEWS 2009-02-26 11:01:20 +0000
+++ b/NEWS 2009-02-27 01:02:40 +0000
@@ -87,6 +87,11 @@
updated to comply with this. The code already complied with the other
criteria, but now it is enforced. (Marius Kruger)
+ * The ``_fetch_*`` attributes on ``Repository`` are now on
+ ``RepositoryFormat``, more accurately reflecting their intent (they
+ describe a disk format capability, not state of a particular
+ repository of that format). (Robert Collins)
+
INTERNALS:
* Branch and Repository creation on a bzr+ssh://server are now done
=== modified file 'bzrlib/fetch.py'
--- a/bzrlib/fetch.py 2009-02-24 21:22:43 +0000
+++ b/bzrlib/fetch.py 2009-02-27 01:02:40 +0000
@@ -192,8 +192,8 @@
# Now copy the file texts.
from_texts = self.from_repository.texts
yield ('texts', from_texts.get_record_stream(
- text_keys, self.to_repository._fetch_order,
- not self.to_repository._fetch_uses_deltas))
+ text_keys, self.to_repository._format._fetch_order,
+ not self.to_repository._format._fetch_uses_deltas))
# Cause an error if a text occurs after we have done the
# copy.
text_keys = None
@@ -248,7 +248,7 @@
# Ask for full texts always so that we don't need more round trips
# after this stream.
stream = vf.get_record_stream(keys,
- self.to_repository._fetch_order, True)
+ self.to_repository._format._fetch_order, True)
yield substream_kind, stream
def _revids_to_fetch(self):
@@ -279,15 +279,15 @@
keys = [(rev_id,) for rev_id in revs]
signatures = filter_absent(from_sf.get_record_stream(
keys,
- self.to_repository._fetch_order,
- not self.to_repository._fetch_uses_deltas))
+ self.to_repository._format._fetch_order,
+ not self.to_repository._format._fetch_uses_deltas))
# If a revision has a delta, this is actually expanded inside the
# insert_record_stream code now, which is an alternate fix for
# bug #261339
from_rf = self.from_repository.revisions
revisions = from_rf.get_record_stream(
keys,
- self.to_repository._fetch_order,
+ self.to_repository._format._fetch_order,
not self.delta_on_metadata())
return [('signatures', signatures), ('revisions', revisions)]
@@ -301,12 +301,12 @@
return []
def inventory_fetch_order(self):
- return self.to_repository._fetch_order
+ return self.to_repository._format._fetch_order
def delta_on_metadata(self):
src_serializer = self.from_repository._format._serializer
target_serializer = self.to_repository._format._serializer
- return (self.to_repository._fetch_uses_deltas and
+ return (self.to_repository._format._fetch_uses_deltas and
src_serializer == target_serializer)
=== modified file 'bzrlib/remote.py'
--- a/bzrlib/remote.py 2009-02-26 06:01:21 +0000
+++ b/bzrlib/remote.py 2009-02-27 01:02:40 +0000
@@ -420,6 +420,26 @@
raise AssertionError('%r is not a RemoteBzrDir' % (a_bzrdir,))
return a_bzrdir.open_repository()
+ def _ensure_real(self):
+ if self._custom_format is None:
+ self._custom_format = repository.network_format_registry.get(
+ self._network_name)
+
+ @property
+ def _fetch_order(self):
+ self._ensure_real()
+ return self._custom_format._fetch_order
+
+ @property
+ def _fetch_uses_deltas(self):
+ self._ensure_real()
+ return self._custom_format._fetch_uses_deltas
+
+ @property
+ def _fetch_reconcile(self):
+ self._ensure_real()
+ return self._custom_format._fetch_reconcile
+
def get_format_description(self):
return 'bzr remote repository'
@@ -443,19 +463,8 @@
@property
def _serializer(self):
- if self._custom_format is not None:
- return self._custom_format._serializer
- elif self._network_name is not None:
- self._custom_format = repository.network_format_registry.get(
- self._network_name)
- return self._custom_format._serializer
- else:
- # We should only be getting asked for the serializer for
- # RemoteRepositoryFormat objects when the RemoteRepositoryFormat object
- # is a concrete instance for a RemoteRepository. In this case we know
- # the creating_repo and can use it to supply the serializer.
- self._creating_repo._ensure_real()
- return self._creating_repo._real_repository._format._serializer
+ self._ensure_real()
+ return self._custom_format._serializer
class RemoteRepository(_RpcHelper):
@@ -1042,36 +1051,6 @@
self._ensure_real()
return self._real_repository.iter_files_bytes(desired_files)
- @property
- def _fetch_order(self):
- """Decorate the real repository for now.
-
- In the long term getting this back from the remote repository as part
- of open would be more efficient.
- """
- self._ensure_real()
- return self._real_repository._fetch_order
-
- @property
- def _fetch_uses_deltas(self):
- """Decorate the real repository for now.
-
- In the long term getting this back from the remote repository as part
- of open would be more efficient.
- """
- self._ensure_real()
- return self._real_repository._fetch_uses_deltas
-
- @property
- def _fetch_reconcile(self):
- """Decorate the real repository for now.
-
- In the long term getting this back from the remote repository as part
- of open would be more efficient.
- """
- self._ensure_real()
- return self._real_repository._fetch_reconcile
-
def get_parent_map(self, revision_ids):
"""See bzrlib.Graph.get_parent_map()."""
return self._make_parents_provider().get_parent_map(revision_ids)
@@ -1345,8 +1324,7 @@
return self._real_repository.get_revisions(revision_ids)
def supports_rich_root(self):
- self._ensure_real()
- return self._real_repository.supports_rich_root()
+ return self._format.rich_root_data
def iter_reverse_revision_history(self, revision_id):
self._ensure_real()
@@ -1354,8 +1332,7 @@
@property
def _serializer(self):
- self._ensure_real()
- return self._real_repository._serializer
+ return self._format._serializer
def store_revision_signature(self, gpg_strategy, plaintext, revision_id):
self._ensure_real()
@@ -1500,7 +1477,11 @@
serialised = record_to_fulltext_bytes(record)
else:
serialised = record.get_bytes_as(record.storage_kind)
- pack_writer.add_bytes_record(serialised, [(substream_type,)])
+ if serialised:
+ # Some streams embed the whole stream into the wire
+ # representation of the first record, which means that
+ # later records have no wire representation: we skip them.
+ pack_writer.add_bytes_record(serialised, [(substream_type,)])
for b in bytes:
yield b
del bytes[:]
=== modified file 'bzrlib/repofmt/knitrepo.py'
--- a/bzrlib/repofmt/knitrepo.py 2009-01-17 01:30:58 +0000
+++ b/bzrlib/repofmt/knitrepo.py 2009-02-27 01:02:40 +0000
@@ -124,8 +124,6 @@
self._commit_builder_class = _commit_builder_class
self._serializer = _serializer
self._reconcile_fixes_text_parents = True
- self._fetch_uses_deltas = True
- self._fetch_order = 'topological'
@needs_read_lock
def _all_revision_ids(self):
@@ -288,6 +286,8 @@
supports_ghosts = True
# External lookups are not supported in this format.
supports_external_lookups = False
+ _fetch_order = 'topological'
+ _fetch_uses_deltas = True
def _get_inventories(self, repo_transport, repo, name='inventory'):
mapper = versionedfile.ConstantMapper(name)
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py 2009-02-23 15:29:35 +0000
+++ b/bzrlib/repofmt/pack_repo.py 2009-02-27 01:02:40 +0000
@@ -2049,7 +2049,6 @@
self._reconcile_does_inventory_gc = True
self._reconcile_fixes_text_parents = True
self._reconcile_backsup_inventory = False
- self._fetch_order = 'unordered'
def _warn_if_deprecated(self):
# This class isn't deprecated, but one sub-format is
@@ -2250,6 +2249,7 @@
# What index classes to use
index_builder_class = None
index_class = None
+ _fetch_uses_deltas = True
def initialize(self, a_bzrdir, shared=False):
"""Create a pack based repository.
=== modified file 'bzrlib/repofmt/weaverepo.py'
--- a/bzrlib/repofmt/weaverepo.py 2009-02-23 15:42:47 +0000
+++ b/bzrlib/repofmt/weaverepo.py 2009-02-27 01:02:40 +0000
@@ -100,8 +100,6 @@
self.inventory_store = get_store('inventory-store')
self._text_store = get_store('text-store')
super(AllInOneRepository, self).__init__(_format, a_bzrdir, a_bzrdir._control_files)
- self._fetch_order = 'topological'
- self._fetch_reconcile = True
@needs_read_lock
def _all_possible_ids(self):
@@ -194,8 +192,6 @@
def __init__(self, _format, a_bzrdir, control_files):
super(WeaveMetaDirRepository, self).__init__(_format, a_bzrdir, control_files)
- self._fetch_order = 'topological'
- self._fetch_reconcile = True
self._serializer = _format._serializer
@needs_read_lock
@@ -270,6 +266,8 @@
supports_tree_reference = False
supports_ghosts = False
supports_external_lookups = False
+ _fetch_order = 'topological'
+ _fetch_reconcile = True
def initialize(self, a_bzrdir, shared=False, _internal=False):
"""Create a weave repository."""
@@ -335,11 +333,6 @@
_matchingbzrdir = bzrdir.BzrDirFormat4()
- def __init__(self):
- super(RepositoryFormat4, self).__init__()
- self._fetch_order = 'topological'
- self._fetch_reconcile = True
-
def get_format_description(self):
"""See RepositoryFormat.get_format_description()."""
return "Repository format 4"
@@ -391,11 +384,6 @@
def _serializer(self):
return xml5.serializer_v5
- def __init__(self):
- super(RepositoryFormat5, self).__init__()
- self._fetch_order = 'topological'
- self._fetch_reconcile = True
-
def get_format_description(self):
"""See RepositoryFormat.get_format_description()."""
return "Weave repository format 5"
@@ -441,11 +429,6 @@
def _serializer(self):
return xml5.serializer_v5
- def __init__(self):
- super(RepositoryFormat6, self).__init__()
- self._fetch_order = 'topological'
- self._fetch_reconcile = True
-
def get_format_description(self):
"""See RepositoryFormat.get_format_description()."""
return "Weave repository format 6"
@@ -490,6 +473,8 @@
_versionedfile_class = weave.WeaveFile
supports_ghosts = False
+ _fetch_order = 'topological'
+ _fetch_reconcile = True
@property
def _serializer(self):
return xml5.serializer_v5
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2009-02-26 00:39:51 +0000
+++ b/bzrlib/repository.py 2009-02-27 01:02:40 +0000
@@ -830,18 +830,6 @@
self._write_group = None
# Additional places to query for data.
self._fallback_repositories = []
- # What order should fetch operations request streams in?
- # The default is unordered as that is the cheapest for an origin to
- # provide.
- self._fetch_order = 'unordered'
- # Does this repository use deltas that can be fetched as-deltas ?
- # (E.g. knits, where the knit deltas can be transplanted intact.
- # We default to False, which will ensure that enough data to get
- # a full text out of any fetch stream will be grabbed.
- self._fetch_uses_deltas = False
- # Should fetch trigger a reconcile after the fetch? Only needed for
- # some repository formats that can suffer internal inconsistencies.
- self._fetch_reconcile = False
# An InventoryEntry cache, used during deserialization
self._inventory_entry_cache = fifo_cache.FIFOCache(10*1024)
@@ -2264,6 +2252,18 @@
# Can this repository be given external locations to lookup additional
# data. Set to True or False in derived classes.
supports_external_lookups = None
+ # What order should fetch operations request streams in?
+ # The default is unordered as that is the cheapest for an origin to
+ # provide.
+ _fetch_order = 'unordered'
+ # Does this repository format use deltas that can be fetched as-deltas ?
+ # (E.g. knits, where the knit deltas can be transplanted intact.
+ # We default to False, which will ensure that enough data to get
+ # a full text out of any fetch stream will be grabbed.
+ _fetch_uses_deltas = False
+ # Should fetch trigger a reconcile after the fetch? Only needed for
+ # some repository formats that can suffer internal inconsistencies.
+ _fetch_reconcile = False
def __str__(self):
return "<%s>" % self.__class__.__name__
@@ -3293,8 +3293,8 @@
from_texts = self.source.texts
to_texts = self.target.texts
to_texts.insert_record_stream(from_texts.get_record_stream(
- text_keys, self.target._fetch_order,
- not self.target._fetch_uses_deltas))
+ text_keys, self.target._format._fetch_order,
+ not self.target._format._fetch_uses_deltas))
# insert deltas
for delta in pending_deltas:
self.target.add_inventory_by_delta(*delta)
@@ -3476,8 +3476,8 @@
from bzrlib.repofmt.pack_repo import RepositoryFormatPack
if isinstance(source._format, RepositoryFormatPack):
if isinstance(target, remote.RemoteRepository):
- target._ensure_real()
- if isinstance(target._real_repository._format,
+ target._format._ensure_real()
+ if isinstance(target._format._custom_format,
RepositoryFormatPack):
if InterRepository._same_model(source, target):
return True
@@ -3782,6 +3782,6 @@
self.target_repo.add_revision(revision_id, rev)
def finished(self):
- if self.target_repo._fetch_reconcile:
+ if self.target_repo._format._fetch_reconcile:
self.target_repo.reconcile()
=== modified file 'bzrlib/tests/blackbox/test_push.py'
--- a/bzrlib/tests/blackbox/test_push.py 2009-02-26 00:13:02 +0000
+++ b/bzrlib/tests/blackbox/test_push.py 2009-02-27 01:02:40 +0000
@@ -202,7 +202,7 @@
# being too low. If rpc_count increases, more network roundtrips have
# become necessary for this use case. Please do not adjust this number
# upwards without agreement from bzr's network support maintainers.
- self.assertEqual(27, rpc_count)
+ self.assertEqual(23, rpc_count)
def test_push_smart_stacked_streaming_acceptance(self):
self.setup_smart_server_with_call_log()
=== modified file 'bzrlib/tests/branch_implementations/test_push.py'
--- a/bzrlib/tests/branch_implementations/test_push.py 2009-02-25 00:31:09 +0000
+++ b/bzrlib/tests/branch_implementations/test_push.py 2009-02-27 01:02:40 +0000
@@ -419,7 +419,7 @@
self.assertEqual(
['BzrDir.open',
'BzrDir.open_branch',
- 'BzrDir.find_repositoryV2',
+ 'BzrDir.find_repositoryV3',
'Branch.get_stacked_on_url',
'Branch.lock_write',
'Branch.last_revision_info',
=== modified file 'bzrlib/tests/per_repository/test_repository.py'
--- a/bzrlib/tests/per_repository/test_repository.py 2009-02-24 15:11:43 +0000
+++ b/bzrlib/tests/per_repository/test_repository.py 2009-02-27 01:02:40 +0000
@@ -70,19 +70,19 @@
"""Test the the _fetch_order attribute."""
tree = self.make_branch_and_tree('tree')
repo = tree.branch.repository
- self.assertTrue(repo._fetch_order in ('topological', 'unordered'))
+ self.assertTrue(repo._format._fetch_order in ('topological', 'unordered'))
def test_attribute__fetch_uses_deltas(self):
"""Test the the _fetch_uses_deltas attribute."""
tree = self.make_branch_and_tree('tree')
repo = tree.branch.repository
- self.assertTrue(repo._fetch_uses_deltas in (True, False))
+ self.assertTrue(repo._format._fetch_uses_deltas in (True, False))
def test_attribute__fetch_reconcile(self):
"""Test the the _fetch_reconcile attribute."""
tree = self.make_branch_and_tree('tree')
repo = tree.branch.repository
- self.assertTrue(repo._fetch_reconcile in (True, False))
+ self.assertTrue(repo._format._fetch_reconcile in (True, False))
def test_attribute_inventories_store(self):
"""Test the existence of the inventories attribute."""
=== modified file 'bzrlib/tests/test_fetch.py'
--- a/bzrlib/tests/test_fetch.py 2009-01-17 01:30:58 +0000
+++ b/bzrlib/tests/test_fetch.py 2009-02-27 01:02:40 +0000
@@ -367,16 +367,16 @@
source.inventories = versionedfile.RecordingVersionedFilesDecorator(
source.inventories)
# precondition
- self.assertTrue(target._fetch_uses_deltas)
+ self.assertTrue(target._format._fetch_uses_deltas)
target.fetch(source, revision_id='rev-one')
self.assertEqual(('get_record_stream', [('file-id', 'rev-one')],
- target._fetch_order, False),
+ target._format._fetch_order, False),
self.find_get_record_stream(source.texts.calls))
self.assertEqual(('get_record_stream', [('rev-one',)],
- target._fetch_order, False),
+ target._format._fetch_order, False),
self.find_get_record_stream(source.inventories.calls))
self.assertEqual(('get_record_stream', [('rev-one',)],
- target._fetch_order, False),
+ target._format._fetch_order, False),
self.find_get_record_stream(source.revisions.calls))
# XXX: Signatures is special, and slightly broken. The
# standard item_keys_introduced_by actually does a lookup for every
@@ -387,7 +387,7 @@
# we care about.
signature_calls = source.signatures.calls[-1:]
self.assertEqual(('get_record_stream', [('rev-one',)],
- target._fetch_order, False),
+ target._format._fetch_order, False),
self.find_get_record_stream(signature_calls))
def test_fetch_no_deltas_with_delta_closure(self):
@@ -406,16 +406,21 @@
source.revisions)
source.inventories = versionedfile.RecordingVersionedFilesDecorator(
source.inventories)
- target._fetch_uses_deltas = False
+ # XXX: This won't work in general, but for the dirstate format it does.
+ old_fetch_uses_deltas_setting = target._format._fetch_uses_deltas
+ def restore():
+ target._format._fetch_uses_deltas = old_fetch_uses_deltas_setting
+ self.addCleanup(restore)
+ target._format._fetch_uses_deltas = False
target.fetch(source, revision_id='rev-one')
self.assertEqual(('get_record_stream', [('file-id', 'rev-one')],
- target._fetch_order, True),
+ target._format._fetch_order, True),
self.find_get_record_stream(source.texts.calls))
self.assertEqual(('get_record_stream', [('rev-one',)],
- target._fetch_order, True),
+ target._format._fetch_order, True),
self.find_get_record_stream(source.inventories.calls))
self.assertEqual(('get_record_stream', [('rev-one',)],
- target._fetch_order, True),
+ target._format._fetch_order, True),
self.find_get_record_stream(source.revisions.calls))
# XXX: Signatures is special, and slightly broken. The
# standard item_keys_introduced_by actually does a lookup for every
@@ -426,7 +431,7 @@
# we care about.
signature_calls = source.signatures.calls[-1:]
self.assertEqual(('get_record_stream', [('rev-one',)],
- target._fetch_order, True),
+ target._format._fetch_order, True),
self.find_get_record_stream(signature_calls))
def test_fetch_revisions_with_deltas_into_pack(self):
=== modified file 'bzrlib/tests/test_pack_repository.py'
--- a/bzrlib/tests/test_pack_repository.py 2009-02-23 15:29:35 +0000
+++ b/bzrlib/tests/test_pack_repository.py 2009-02-27 01:02:40 +0000
@@ -73,13 +73,13 @@
"""Packs do not need ordered data retrieval."""
format = self.get_format()
repo = self.make_repository('.', format=format)
- self.assertEqual('unordered', repo._fetch_order)
+ self.assertEqual('unordered', repo._format._fetch_order)
def test_attribute__fetch_uses_deltas(self):
"""Packs reuse deltas."""
format = self.get_format()
repo = self.make_repository('.', format=format)
- self.assertEqual(True, repo._fetch_uses_deltas)
+ self.assertEqual(True, repo._format._fetch_uses_deltas)
def test_disk_layout(self):
format = self.get_format()
=== modified file 'bzrlib/tests/test_repository.py'
--- a/bzrlib/tests/test_repository.py 2009-01-17 01:30:58 +0000
+++ b/bzrlib/tests/test_repository.py 2009-02-27 01:02:40 +0000
@@ -167,19 +167,19 @@
"""Weaves need topological data insertion."""
control = bzrdir.BzrDirFormat6().initialize(self.get_url())
repo = weaverepo.RepositoryFormat6().initialize(control)
- self.assertEqual('topological', repo._fetch_order)
+ self.assertEqual('topological', repo._format._fetch_order)
def test_attribute__fetch_uses_deltas(self):
"""Weaves do not reuse deltas."""
control = bzrdir.BzrDirFormat6().initialize(self.get_url())
repo = weaverepo.RepositoryFormat6().initialize(control)
- self.assertEqual(False, repo._fetch_uses_deltas)
+ self.assertEqual(False, repo._format._fetch_uses_deltas)
def test_attribute__fetch_reconcile(self):
"""Weave repositories need a reconcile after fetch."""
control = bzrdir.BzrDirFormat6().initialize(self.get_url())
repo = weaverepo.RepositoryFormat6().initialize(control)
- self.assertEqual(True, repo._fetch_reconcile)
+ self.assertEqual(True, repo._format._fetch_reconcile)
def test_no_ancestry_weave(self):
control = bzrdir.BzrDirFormat6().initialize(self.get_url())
@@ -202,19 +202,19 @@
"""Weaves need topological data insertion."""
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
repo = weaverepo.RepositoryFormat7().initialize(control)
- self.assertEqual('topological', repo._fetch_order)
+ self.assertEqual('topological', repo._format._fetch_order)
def test_attribute__fetch_uses_deltas(self):
"""Weaves do not reuse deltas."""
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
repo = weaverepo.RepositoryFormat7().initialize(control)
- self.assertEqual(False, repo._fetch_uses_deltas)
+ self.assertEqual(False, repo._format._fetch_uses_deltas)
def test_attribute__fetch_reconcile(self):
"""Weave repositories need a reconcile after fetch."""
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
repo = weaverepo.RepositoryFormat7().initialize(control)
- self.assertEqual(True, repo._fetch_reconcile)
+ self.assertEqual(True, repo._format._fetch_reconcile)
def test_disk_layout(self):
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
@@ -348,13 +348,13 @@
"""Knits need topological data insertion."""
repo = self.make_repository('.',
format=bzrdir.format_registry.get('knit')())
- self.assertEqual('topological', repo._fetch_order)
+ self.assertEqual('topological', repo._format._fetch_order)
def test_attribute__fetch_uses_deltas(self):
"""Knits reuse deltas."""
repo = self.make_repository('.',
format=bzrdir.format_registry.get('knit')())
- self.assertEqual(True, repo._fetch_uses_deltas)
+ self.assertEqual(True, repo._format._fetch_uses_deltas)
def test_disk_layout(self):
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
@@ -619,14 +619,14 @@
format = bzrdir.BzrDirMetaFormat1()
format.repository_format = knitrepo.RepositoryFormatKnit3()
repo = self.make_repository('.', format=format)
- self.assertEqual('topological', repo._fetch_order)
+ self.assertEqual('topological', repo._format._fetch_order)
def test_attribute__fetch_uses_deltas(self):
"""Knits reuse deltas."""
format = bzrdir.BzrDirMetaFormat1()
format.repository_format = knitrepo.RepositoryFormatKnit3()
repo = self.make_repository('.', format=format)
- self.assertEqual(True, repo._fetch_uses_deltas)
+ self.assertEqual(True, repo._format._fetch_uses_deltas)
def test_convert(self):
"""Ensure the upgrade adds weaves for roots"""
=== modified file 'bzrlib/tests/test_smart.py'
--- a/bzrlib/tests/test_smart.py 2009-02-23 15:29:35 +0000
+++ b/bzrlib/tests/test_smart.py 2009-02-27 01:02:40 +0000
@@ -65,6 +65,8 @@
"_request_class":bzrdir_mod.SmartServerRequestFindRepositoryV1}),
("find_repositoryV2", {
"_request_class":bzrdir_mod.SmartServerRequestFindRepositoryV2}),
+ ("find_repositoryV3", {
+ "_request_class":bzrdir_mod.SmartServerRequestFindRepositoryV3}),
]
to_adapt, result = split_suite_by_re(standard_tests,
"TestSmartServerRequestFindRepository")
@@ -214,7 +216,12 @@
subtrees = 'yes'
else:
subtrees = 'no'
- if (smart.bzrdir.SmartServerRequestFindRepositoryV2 ==
+ if (smart.bzrdir.SmartServerRequestFindRepositoryV3 ==
+ self._request_class):
+ return SuccessfulSmartServerResponse(
+ ('ok', '', rich_root, subtrees, 'no',
+ repo._format.network_name()))
+ elif (smart.bzrdir.SmartServerRequestFindRepositoryV2 ==
self._request_class):
# All tests so far are on formats, and for non-external
# repositories.
More information about the bazaar-commits
mailing list