Debugging the import of divmod nevow, I found a crash, and concocted a reproducer. I'm attaching a svn dumpfile.
maxb@chimaera:/tmp$ svnadmin create tmprepo
maxb@chimaera:/tmp$ svnadmin load --quiet tmprepo < ~/repro.dump
maxb@chimaera:/tmp$ bzr branch tmprepo/trunk/myproj
bzr: ERROR: sorry, '..' not allowed in path
0.378 Traceback (most recent call last):
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 923, in exception_to_return_code
return the_callable(*args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 1123, in run_bzr
ret = run(*run_argv)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 691, in run_argv_aliases
return self.run(**all_cmd_args)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 710, in run
return self._operation.run_simple(*args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 135, in run_simple
self.cleanups, self.func, *args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 165, in _do_with_cleanups
result = func(*args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/builtins.py", line 1227, in run
source_branch=br_from)
File "/home/maxb/.bazaar/plugins/svn/remote.py", line 138, in sprout
return super(SvnRemoteAccess, self).sprout(*args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/controldir.py", line 374, in sprout
create_tree_if_local=create_tree_if_local)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 131, in run
self.cleanups, self.func, self, *args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 165, in _do_with_cleanups
result = func(*args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/controldir.py", line 426, in _sprout
result_repo.fetch(source_repository, fetch_spec=fetch_spec)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/repository.py", line 1745, in fetch
find_ghosts=find_ghosts, fetch_spec=fetch_spec)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1565, in fetch
pack_hint = self._fetch_revisions(needed, pb)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1492, in _fetch_revisions
use_replay=self._use_replay)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1462, in _fetch_revisions_nochunks
parent_revmeta)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1404, in _fetch_revision_switch
report_inventory_contents(reporter, parent_revnum, start_empty)
File "/home/maxb/.bazaar/plugins/svn/errors.py", line 144, in convert
return unbound(*args, **kwargs)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1142, in report_inventory_contents
reporter.finish()
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 328, in open_root
return self._open_root(base_revnum)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 874, in _open_root
None, u"", base_revnum)
File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 765, in get_svn_base_ie_open
file_id = self.svn_base_tree.path2id(svn_base_path)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/decorators.py", line 140, in read_locked
result = unbound(self, *args, **kwargs)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/tree.py", line 558, in path2id
return self._inventory.path2id(path)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/inventory.py", line 2079, in path2id
names = osutils.splitpath(relpath)
File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/osutils.py", line 918, in splitpath
raise errors.BzrError("sorry, %r not allowed in path" % f)
BzrError: sorry, '..' not allowed in path
status triaged
importance medium