bzr throws error when branch moved.

Bug #1602811 reported by Sondra Kinsey
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
New
Undecided
Unassigned

Bug Description

BZR causes numerous problems when the directory path to a bzr branch changes between actions. I experience this in two ways:
1) I access the same bzr branch from both Windows, at C:/some/path, and from Linux, at /media/lubuntu/windows/some/path.
2) I move a bzr branch using conventional file system tools.

Bazaar seems to keep a record of what path the branch is at, and if that path is not accessible, it raises an error.

This error is simple:
bzr: ERROR: Not a branch: "/media/lubuntu/NCP-THUMB3/t/skcomp/"

In the past, I thought I worked around this by manually editing .bzr/branch.conf or some such.

This time, I didn't see that file, so I manually edited .bzr/branch/location to match the current location of the branch. I received the following error:
bzr: ERROR: exceptions.RuntimeError: maximum recursion depth exceeded in cmp

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 930, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/commands.py", line 1121, 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 697, 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/commands.py", line 1138, in ignore_pipe
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/bzrlib/builtins.py", line 1853, in run
    verbose=noise_level, outfile=self.outf)
  File "/usr/lib/python2.7/dist-packages/bzrlib/info.py", line 352, in show_bzrdir_info
    recommend_upgrade=False)
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1095, in open_workingtree
    return format.open(self, _found=True)
  File "/usr/lib/python2.7/dist-packages/bzrlib/workingtree_4.py", line 1595, in open
    wt = self._open(a_bzrdir, self._open_control_files(a_bzrdir))
  File "/usr/lib/python2.7/dist-packages/bzrlib/workingtree_4.py", line 1605, in _open
    branch=a_bzrdir.open_branch(),
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1079, in open_branch
    possible_transports=possible_transports)
  File "/usr/lib/python2.7/dist-packages/bzrlib/branch.py", line 2274, in open
    possible_transports=possible_transports)
...
These 4 lines repeated many times over:
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1079, in open_branch
    possible_transports=possible_transports)
  File "/usr/lib/python2.7/dist-packages/bzrlib/branch.py", line 2274, in open
    possible_transports=possible_transports)
...
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1079, in open_branch
    possible_transports=possible_transports)
  File "/usr/lib/python2.7/dist-packages/bzrlib/branch.py", line 2274, in open
    possible_transports=possible_transports)
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1079, in open_branch
    possible_transports=possible_transports)
  File "/usr/lib/python2.7/dist-packages/bzrlib/branch.py", line 2272, in open
    location, possible_transports=possible_transports)
  File "/usr/lib/python2.7/dist-packages/bzrlib/controldir.py", line 689, in open
    _unsupported=_unsupported)
  File "/usr/lib/python2.7/dist-packages/bzrlib/controldir.py", line 723, in open_from_transport
    return format.open(transport, _found=True)
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1486, in open
    return self._open(transport)
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 1694, in _open
    return BzrDirMeta1(transport, format)
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 851, in __init__
    super(BzrDirMeta1, self).__init__(_transport, _format)
  File "/usr/lib/python2.7/dist-packages/bzrlib/bzrdir.py", line 638, in __init__
    self.transport = _transport.clone('.bzr')
  File "/usr/lib/python2.7/dist-packages/bzrlib/transport/local.py", line 86, in clone
    return LocalTransport(abspath)
  File "/usr/lib/python2.7/dist-packages/bzrlib/transport/local.py", line 67, in __init__
    super(LocalTransport, self).__init__(base)
  File "/usr/lib/python2.7/dist-packages/bzrlib/transport/__init__.py", line 331, in __init__
    urlutils.split_segment_parameters(base))
  File "/usr/lib/python2.7/dist-packages/bzrlib/urlutils.py", line 536, in split_segment_parameters
    (base_url, subsegments) = split_segment_parameters_raw(url)
  File "/usr/lib/python2.7/dist-packages/bzrlib/urlutils.py", line 522, in split_segment_parameters_raw
    lurl = strip_trailing_slash(url)
  File "/usr/lib/python2.7/dist-packages/bzrlib/urlutils.py", line 621, in strip_trailing_slash
    if sys.platform == 'win32' and url.startswith('file://'):
RuntimeError: maximum recursion depth exceeded in cmp

bzr 2.7.0 on python 2.7.11 (Linux-4.4.0-21-generic-i686-with-
    Ubuntu-16.04-xenial)
arguments: ['/usr/bin/bzr', 'info']
plugins: bash_completion[2.7.0], changelog_merge[2.7.0], git[0.6.12],
    grep[2.7.0], launchpad[2.7.0], netrc_credential_store[2.7.0],
    news_merge[2.7.0], po_merge[2.7.0], weave_fmt[2.7.0]
encoding: 'utf-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.