Comment 4 for bug 403857

Revision history for this message
James Westby (james-w) wrote :

Hi,

I believe the original bug report was slightly wrong, re-opening as I think it is
still an issue.

It should have been

   bzr export localname bzr+ssh://bazaar.launchpad.net/~oubiwann/project/branch/subdir
   bzr: ERROR: Permission denied: "Cannot create 'subdir'. Only Bazaar branches are allowed."

Consider

   bzr ls lp:~bzr/bzr/trunk/bzrlib/
   bzr: ERROR: Permission denied: "Cannot create 'bzrlib'. Only Bazaar branches are allowed."

Traceback (most recent call last):
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/commands.py", line 835, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/commands.py", line 1030, in run_bzr
    ret = run(*run_argv)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/commands.py", line 647, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/builtins.py", line 2735, in run
    b, subdir = Branch.open_containing(branch_or_subdir)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/branch.py", line 181, in open_containing
    possible_transports)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/bzrdir.py", line 891, in open_containing
    return BzrDir.open_containing_from_transport(transport)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/bzrdir.py", line 912, in open_containing_from_transport
    result = BzrDir.open_from_transport(a_transport)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/bzrdir.py", line 871, in open_from_transport
    return format.open(transport, _found=True)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/bzrdir.py", line 2052, in open
    return self._open(transport)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/bzrdir.py", line 3279, in _open
    return remote.RemoteBzrDir(transport, self)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/remote.py", line 110, in __init__
    response = self._call('BzrDir.open', path)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/remote.py", line 56, in _call
    self._translate_error(err, **err_context)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/remote.py", line 128, in _translate_error
    _translate_error(err, bzrdir=self, **context)
  File "/home/jw2328/devel/bzr/bzr.dev/bzrlib/remote.py", line 2668, in _translate_error
    raise errors.PermissionDenied(path, extra=extra)

so calling BzrDir.open on a path that is "under" a branch is rejected by LP.
Presumably if it just says "not found" to the open request then bzr would continue
and open the containing branch.

I'm not sure how this would affect the ability to reject pushes to arbitrary locations
though.

Thanks,

James