29
23
from bzrlib.branch import Branch
30
24
from bzrlib.directory_service import directories
31
25
from bzrlib.osutils import pathjoin
32
26
from bzrlib.tests.blackbox import ExternalBase
33
27
from bzrlib.uncommit import uncommit
34
28
from bzrlib.workingtree import WorkingTree
29
from bzrlib import urlutils
37
32
class TestPull(ExternalBase):
343
338
def look_up(self, name, url):
345
340
directories.register('foo:', FooService, 'Testing directory service')
346
self.addCleanup(directories.remove, 'foo:')
341
self.addCleanup(lambda: directories.remove('foo:'))
347
342
self.run_bzr('pull foo:bar -d target')
348
343
self.assertEqual(source_last, target.last_revision())
395
390
self.assertLength(18, self.hpss_calls)
396
391
remote = Branch.open('stacked')
397
392
self.assertEndsWith(remote.get_stacked_on_url(), '/parent')
399
def test_pull_cross_format_warning(self):
400
"""You get a warning for probably slow cross-format pulls.
402
# this is assumed to be going through InterDifferingSerializer
403
from_tree = self.make_branch_and_tree('from', format='2a')
404
to_tree = self.make_branch_and_tree('to', format='1.14-rich-root')
405
from_tree.commit(message='first commit')
406
out, err = self.run_bzr(['pull', '-d', 'to', 'from'])
407
self.assertContainsRe(err,
408
"(?m)Doing on-the-fly conversion")
410
def test_pull_cross_format_warning_no_IDS(self):
411
"""You get a warning for probably slow cross-format pulls.
413
# this simulates what would happen across the network, where
414
# interdifferingserializer is not active
416
debug.debug_flags.add('IDS_never')
417
# TestCase take care of restoring them
419
from_tree = self.make_branch_and_tree('from', format='2a')
420
to_tree = self.make_branch_and_tree('to', format='1.14-rich-root')
421
from_tree.commit(message='first commit')
422
out, err = self.run_bzr(['pull', '-d', 'to', 'from'])
423
self.assertContainsRe(err,
424
"(?m)Doing on-the-fly conversion")
426
def test_pull_cross_format_from_network(self):
427
self.setup_smart_server_with_call_log()
428
from_tree = self.make_branch_and_tree('from', format='2a')
429
to_tree = self.make_branch_and_tree('to', format='1.14-rich-root')
430
self.assertIsInstance(from_tree.branch, remote.RemoteBranch)
431
from_tree.commit(message='first commit')
432
out, err = self.run_bzr(['pull', '-d', 'to',
433
from_tree.branch.bzrdir.root_transport.base])
434
self.assertContainsRe(err,
435
"(?m)Doing on-the-fly conversion")