Pushing lots of revisions from one svn repo to another results in bzrlib.errors.NoSuchRevision

Bug #307611 reported by Christoph Neumann
2
Affects Status Importance Assigned to Milestone
Bazaar Subversion Plugin
Fix Released
Medium
Jelmer Vernooij

Bug Description

I'm using bzr-svn 0.4.16 and subversion 1.4.

I pulled down a bunch of changes (386 to be exact) like so:
bzr branch svn+http://remoteserver/svn/trunk/gui

Then I tried to push them into another svn repo like so:
svn mkdir http://localhost/svn/trunk/gui
bzr push -v --overwrite http://localhost/svn/trunk/gui

I get this error:
bzr: ERROR: bzrlib.errors.NoSuchRevision: <bzrlib.plugins.svn.revids.RevisionIdMapCache object at 0x88c328c> has no revision enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt

Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 893, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 839, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 539, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.5/site-packages/bzrlib/builtins.py", line 913, in run
    use_existing_dir=use_existing_dir)
  File "/usr/lib/python2.5/site-packages/bzrlib/push.py", line 162, in _show_push_branch
    stop_revision=revision_id)
  File "/usr/lib/python2.5/site-packages/bzrlib/decorators.py", line 138, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1799, in push
    _override_hook_source_branch=_override_hook_source_branch)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 2508, in _run_with_write_locked_target
    result = callable(*args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1838, in _push_with_bound_branches
    result = self._basic_push(target, overwrite, stop_revision)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1861, in _basic_push
    graph=graph)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/branch.py", line 437, in update_revisions
    _push_merged, _override_svn_revprops)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/branch.py", line 449, in _push_missing_revisions
    push(my_graph, self, other.repository, revid, override_svn_revprops=_override_svn_revprops)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/commit.py", line 831, in push
    override_svn_revprops=override_svn_revprops)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/commit.py", line 783, in push_revision_tree
    override_svn_revprops=override_svn_revprops)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/commit.py", line 181, in __init__
    repository.lookup_revision_id(self.base_revid)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/repository.py", line 648, in lookup_revision_id
    return self.get_revmap().get_branch_revnum(revid, layout, project)
  File "/usr/lib/python2.5/site-packages/bzrlib/plugins/svn/revids.py", line 195, in get_branch_revnum
    raise e
NoSuchRevision: <bzrlib.plugins.svn.revids.RevisionIdMapCache object at 0x88c328c> has no revision enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt

bzr 1.10 on python 2.5.2 (linux2)
arguments: ['/usr/bin/bzr', 'push', '-v', '--overwrite', 'svn+http://localhost/svn/test/trunk/gui']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
  bzrtools /usr/lib/python2.5/site-packages/bzrlib/plugins/bzrtools [1.10]
  gtk /usr/lib/python2.5/site-packages/bzrlib/plugins/gtk [0.95.0.final.1]
  launchpad /usr/lib/python2.5/site-packages/bzrlib/plugins/launchpad [unknown]
  rebase /home/enigma/.bazaar/plugins/rebase [0.4dev]
  svn /usr/lib/python2.5/site-packages/bzrlib/plugins/svn [0.4.16]
*** Bazaar has encountered an internal error.
    Please report a bug at https://bugs.launchpad.net/bzr/+filebug
    including this traceback, and a description of what you
    were doing when the error occurred.

When I try pushing that same branched tree with 0.5.0.rc1 (after clearing "svn-cache" and "subversion.conf"), I get the same error:
bzr: ERROR: bzrlib.errors.NoSuchRevision: <bzrlib.plugins.svn.revids.RevisionIdMapCache object at 0x89c80cc> has no revision enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt

Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 893, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 839, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 539, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.5/site-packages/bzrlib/builtins.py", line 913, in run
    use_existing_dir=use_existing_dir)
  File "/usr/lib/python2.5/site-packages/bzrlib/push.py", line 162, in _show_push_branch
    stop_revision=revision_id)
  File "/usr/lib/python2.5/site-packages/bzrlib/decorators.py", line 138, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1799, in push
    _override_hook_source_branch=_override_hook_source_branch)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 2508, in _run_with_write_locked_target
    result = callable(*args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1838, in _push_with_bound_branches
    result = self._basic_push(target, overwrite, stop_revision)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1861, in _basic_push
    graph=graph)
  File "/home/enigma/.bazaar/plugins/svn/branch.py", line 458, in update_revisions
    _push_merged, _override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/branch.py", line 479, in _push_missing_revisions
    override_svn_revprops=_override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/commit.py", line 986, in push
    override_svn_revprops=override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/commit.py", line 940, in push_revision_tree
    override_svn_revprops=override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/commit.py", line 371, in __init__
    repository.lookup_revision_id(self.base_revid)
  File "/home/enigma/.bazaar/plugins/svn/repository.py", line 613, in lookup_revision_id
    return self.revmap.get_branch_revnum(revid, layout, project)
  File "/home/enigma/.bazaar/plugins/svn/revids.py", line 194, in get_branch_revnum
    raise e
NoSuchRevision: <bzrlib.plugins.svn.revids.RevisionIdMapCache object at 0x89c80cc> has no revision enigma@neumannc-desktop-20081202021216-yyxr9acya83v2rjt

bzr 1.10 on python 2.5.2 (linux2)
arguments: ['/usr/bin/bzr', 'push', '-v', '--overwrite', 'svn+http://localhost/svn/test/trunk/gui']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
  bzrtools /usr/lib/python2.5/site-packages/bzrlib/plugins/bzrtools [1.10]
  gtk /usr/lib/python2.5/site-packages/bzrlib/plugins/gtk [0.95.0.final.1]
  launchpad /usr/lib/python2.5/site-packages/bzrlib/plugins/launchpad [unknown]
  rebase /home/enigma/.bazaar/plugins/rebase [0.4dev]
  svn /home/enigma/.bazaar/plugins/svn [0.5.0.rc.1]
*** Bazaar has encountered an internal error.
    Please report a bug at https://bugs.launchpad.net/bzr/+filebug
    including this traceback, and a description of what you
    were doing when the error occurred.

Revision history for this message
Christoph Neumann (enigma2a) wrote :

Oh...I forgot to mention, with bzr-svn 0.4.16, I can do the following with *no* errors at all:
bzr push -r 1 -v --overwrite svn+http://localhost/svn/test/trunk/gui

After that, I can using a regular push to get some more revisions in the tree, which works for a while, but then segfaults:
bzr push -v svn+http://localhost/svn/test/trunk/gui
The svn+ syntax is deprecated, use http://localhost/svn/test/trunk/gui instead.
/ [======== ] pushing revisions 25/385Segmentation fault

If I repeatedly push (after a total of 5 segfaults), I can get eventually get all the revisions into the new svn repo.

Revision history for this message
Christoph Neumann (enigma2a) wrote :
Download full text (3.6 KiB)

I tried the "push -r 1 --overwrite" trick with bzr-svn 0.5 RC1 and it doesn't work:
bzr push -r 1 -v --overwrite svn+http://localhost/svn/test/trunk/gui

The svn+ syntax is deprecated, use http://localhost/svn/test/trunk/gui instead.
Initialising Subversion metadata cache in /home/enigma/.bazaar/svn-cache/27530666-c0bc-4525-b9dd-495b6ed8d586
Upgrade to Subversion 1.5 or higher for faster retrieving of revision properties.
bzr: ERROR: exceptions.AssertionError: revprops: ['bzr:revision-id', 'bzr:user-agent', 'bzr:timestamp', 'bzr:root', 'bzr:committer', 'svn:log', 'bzr:revprop:branch-nick', 'bzr:file-ids', 'bzr:base-revision', 'bzr:revno', 'bzr:mapping-version']

Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 893, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 839, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 539, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.5/site-packages/bzrlib/builtins.py", line 913, in run
    use_existing_dir=use_existing_dir)
  File "/usr/lib/python2.5/site-packages/bzrlib/push.py", line 162, in _show_push_branch
    stop_revision=revision_id)
  File "/usr/lib/python2.5/site-packages/bzrlib/decorators.py", line 138, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1799, in push
    _override_hook_source_branch=_override_hook_source_branch)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 2508, in _run_with_write_locked_target
    result = callable(*args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1838, in _push_with_bound_branches
    result = self._basic_push(target, overwrite, stop_revision)
  File "/usr/lib/python2.5/site-packages/bzrlib/branch.py", line 1861, in _basic_push
    graph=graph)
  File "/home/enigma/.bazaar/plugins/svn/branch.py", line 458, in update_revisions
    _push_merged, _override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/branch.py", line 479, in _push_missing_revisions
    override_svn_revprops=_override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/commit.py", line 986, in push
    override_svn_revprops=override_svn_revprops)
  File "/home/enigma/.bazaar/plugins/svn/commit.py", line 944, in push_revision_tree
    revid = builder.commit(rev.message)
  File "/home/enigma/.bazaar/plugins/svn/commit.py", line 591, in commit
    "revprops: %r" % self._svn_revprops.keys()
AssertionError: revprops: ['bzr:revision-id', 'bzr:user-agent', 'bzr:timestamp', 'bzr:root', 'bzr:committer', 'svn:log', 'bzr:revprop:branch-nick', 'bzr:file-ids', 'bzr:base-revision', 'bzr:revno', 'bzr:mapping-version']

bzr 1.10 on python 2.5.2 (linux2)
arguments: ['/usr/bin/bzr', 'push', '-r', '1', '-v', '--overwrite', 'svn+http://localhost/svn/test/trunk/gui']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
  bzrtools /usr/lib/python2.5/site-packages/bzrlib/plugins/bzrtools [1.10]
  gtk /usr/lib/python2.5/site-packages/bzrlib/plu...

Read more...

Revision history for this message
Christoph Neumann (enigma2a) wrote :

I just tried this again with 0.5 and used "bzr svn-push" instead of "bzr push --overwrite" and it worked fine. I got no errors or segfaults.

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

thanks for confirming

Changed in bzr-svn:
assignee: nobody → jelmer
importance: Undecided → Medium
milestone: none → 0.5.0
status: New → Fix Released
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.