If you try to create a branch over an existing one you get a Python crash. I would expect a nice error message indicating the branch already exists.
For a clone somewhere just run this command twice:
bzr switch -b lp:~user/project/branch
----
bzr: ERROR: bzrlib.errors.TooManyConcurrentRequests: The medium 'SmartSSHClientMedium(bzr+ssh://<email address hidden>/)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 920, in exception_to_return_code
return the_callable(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 1131, in run_bzr
ret = run(*run_argv)
File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 673, in run_argv_aliases
return self.run(**all_cmd_args)
File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 695, in run
return self._operation.run_simple(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 136, in run_simple
self.cleanups, self.func, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups
result = func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/builtins.py", line 6270, in run
source_branch=branch).open_branch()
File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 366, in sprout
create_tree_if_local=create_tree_if_local)
File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 132, in run
self.cleanups, self.func, self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups
result = func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 416, in _sprout
result_repo.fetch(source_repository, fetch_spec=fetch_spec)
File "/usr/lib/python2.7/dist-packages/bzrlib/remote.py", line 2157, in fetch
find_ghosts=find_ghosts, fetch_spec=fetch_spec)
File "/usr/lib/python2.7/dist-packages/bzrlib/decorators.py", line 218, in write_locked
result = unbound(self, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/bzrlib/vf_repository.py", line 2584, in fetch
find_ghosts=find_ghosts)
File "/usr/lib/python2.7/dist-packages/bzrlib/fetch.py", line 77, in __init__
self.__fetch()
File "/usr/lib/python2.7/dist-packages/bzrlib/fetch.py", line 104, in __fetch
self._fetch_everything_for_search(search_result)
File "/usr/lib/python2.7/dist-packages/bzrlib/fetch.py", line 132, in _fetch_everything_for_search
stream, from_format, [])
File "/usr/lib/python2.7/dist-packages/bzrlib/remote.py", line 2881, in insert_stream
(verb, path, resume_tokens) + lock_args, byte_stream)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 108, in call_with_body_stream
expect_response_body=False)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 55, in _call_and_read_response
return request.call_and_read_response()
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 157, in call_and_read_response
return self._call(protocol_version)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 189, in _call
response_handler = self._send(protocol_version)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 267, in _send
self._send_no_retry(encoder)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 313, in _send_no_retry
self.body_stream)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/protocol.py", line 1275, in _iter_with_errors
yield None, iterator.next()
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/repository.py", line 629, in _stream_to_byte_stream
for substream_type, substream in stream:
File "/usr/lib/python2.7/dist-packages/bzrlib/remote.py", line 3066, in missing_parents_chain
for kind, stream in self._get_stream(sources[0], search):
File "/usr/lib/python2.7/dist-packages/bzrlib/remote.py", line 3012, in _get_stream
verb, args, search_bytes)
File "/usr/lib/python2.7/dist-packages/bzrlib/remote.py", line 93, in _call_with_body_bytes_expecting_body
method, args, body_bytes)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 97, in call_with_body_bytes_expecting_body
method, args, body=body, expect_response_body=True)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 55, in _call_and_read_response
return request.call_and_read_response()
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 157, in call_and_read_response
return self._call(protocol_version)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 189, in _call
response_handler = self._send(protocol_version)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 265, in _send
encoder, response_handler = self._construct_protocol(protocol_version)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/client.py", line 241, in _construct_protocol
request = self.client._medium.get_request()
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/medium.py", line 884, in get_request
return SmartClientStreamMediumRequest(self)
File "/usr/lib/python2.7/dist-packages/bzrlib/smart/medium.py", line 1167, in __init__
raise errors.TooManyConcurrentRequests(self._medium)
TooManyConcurrentRequests: The medium 'SmartSSHClientMedium(bzr+ssh://<email address hidden>/)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request.
bzr 2.5.1 on python 2.7.3 (Linux-3.2.0-38-generic-x86_64-with-
Ubuntu-12.04-precise)
arguments: ['/usr/bin/bzr', 'switch', '-b', 'lp:~eda-
qa/mortoray.com/type_convert_test']
plugins: bash_completion[2.5.1], bzrtools[2.5.0], changelog_merge[2.5.1],
launchpad[2.5.1], netrc_credential_store[2.5.1], news_merge[2.5.1],
po_merge[2.5.1], qbzr[0.22.2], weave_fmt[2.5.1]
encoding: 'utf-8', fsenc: 'UTF-8', lang: 'en_GB.UTF-8'
*** Bazaar has encountered an internal error. This probably indicates a
bug in Bazaar. You can help us fix it by filing a bug report at
https://bugs.launchpad.net/bzr/+filebug
including this traceback and a description of the problem.
----
Bazaar (bzr) 2.5.1
Python interpreter: /usr/bin/python 2.7.3
Python standard library: /usr/lib/python2.7
Platform: Linux-3.2.0-38-generic-x86_64-with-Ubuntu-12.04-precise
bzrlib: /usr/lib/python2.7/dist-packages/bzrlib
This is probably not what you actually want to do, instead switch first, then pull, or just branch.