-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Imported from https://bugs.launchpad.net/subvertpy/+bug/497280:
$ bzr push
Using saved push location: svn+ssh:///svn//branches/
bzr: ERROR: exceptions.AssertionError:
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 843, in exception_to_return_code
return the_callable(_args, *_kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1038, in run_bzr
ret = run(_run_argv)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 655, in run_argv_aliases
return self.run(__all_cmd_args)
File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 1156, in run
use_existing_dir=use_existing_dir)
File "/Library/Python/2.6/site-packages/bzrlib/push.py", line 128, in _show_push_branch
remember, create_prefix)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/remote.py", line 249, in push_branch
overwrite=overwrite)
File "/Library/Python/2.6/site-packages/bzrlib/branch.py", line 958, in push
*args, *_kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/branch.py", line 934, in push
override_svn_revprops=_override_svn_revprops)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/branch.py", line 844, in _update_revisions
push_merged, overwrite=overwrite)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/push.py", line 217, in push_branch
overwrite=overwrite)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/push.py", line 239, in push
override_svn_revprops=target_config.get_override_svn_revprops())
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/push.py", line 143, in push_revision_tree
override_svn_revprops=override_svn_revprops)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py", line 530, in init
self.base_revid, merges)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py", line 126, in update_mergeinfo
mergeinfo = properties.parse_mergeinfo_property(oldvalue)
File "/Library/Python/2.6/site-packages/subvertpy/properties.py", line 132, in parse_mergeinfo_property
assert path.startswith("/")
AssertionError
I stopped at that location in PDB and printed the value of the text variable, which is the content of the property. It was as follows (not that the replaced tokens are consistent with the tokens in the remote branch URL):
'/branches/:190891-190931\n/branches/:190965-190991\n/branches/:191003-191025'
The assertion hit is of course
assert path.startswith("/")
I am not sure why this must be so. One thing should mention is that our branches used to live at the root of a repository (called it alpha), e.g.
alpha/branches/*
alpha/trunk
alpha/tags/*
This repository was recently dumped and re-played on top of another, existing repository and prefixed with , such that it is now laid out as such in repository beta:
beta/project/branches/*
beta/project/trunk
beta/project/tags/*
This is a critical bug in bzr-svn which prevents us from pushing back to Subversion.
$ bzr push
Using saved push location: svn+ssh:///svn//branches/
bzr: ERROR: exceptions.AssertionError:
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 843, in exception_to_return_code
return the_callable(_args, *_kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1038, in run_bzr
ret = run(_run_argv)
File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 655, in run_argv_aliases
return self.run(__all_cmd_args)
File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 1156, in run
use_existing_dir=use_existing_dir)
File "/Library/Python/2.6/site-packages/bzrlib/push.py", line 128, in _show_push_branch
remember, create_prefix)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/remote.py", line 249, in push_branch
overwrite=overwrite)
File "/Library/Python/2.6/site-packages/bzrlib/branch.py", line 958, in push
*args, *_kwargs)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/branch.py", line 934, in push
override_svn_revprops=_override_svn_revprops)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/branch.py", line 844, in _update_revisions
push_merged, overwrite=overwrite)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/push.py", line 217, in push_branch
overwrite=overwrite)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/push.py", line 239, in push
override_svn_revprops=target_config.get_override_svn_revprops())
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/push.py", line 143, in push_revision_tree
override_svn_revprops=override_svn_revprops)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py", line 530, in init
self.base_revid, merges)
File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py", line 126, in update_mergeinfo
mergeinfo = properties.parse_mergeinfo_property(oldvalue)
File "/Library/Python/2.6/site-packages/subvertpy/properties.py", line 132, in parse_mergeinfo_property
assert path.startswith("/")
AssertionError
I stopped at that location in PDB and printed the value of the text variable, which is the content of the property. It was as follows (not that the replaced tokens are consistent with the tokens in the remote branch URL):
'/branches/:190891-190931\n/branches/:190965-190991\n/branches/:191003-191025'
The assertion hit is of course
assert path.startswith("/")
I am not sure why this must be so. One thing should mention is that our branches used to live at the root of a repository (called it alpha), e.g.
alpha/branches/*
alpha/trunk
alpha/tags/*
This repository was recently dumped and re-played on top of another, existing repository and prefixed with , such that it is now laid out as such in repository beta:
beta/project/branches/*
beta/project/trunk
beta/project/tags/*
Looking at the subversion source code, it seems like it is allowed to have paths without a leading slash, but these paths need to be interpreted as being relative to the path on which the property is set.