[issue3347] hg convert fails for subversion on empty head revision

Sebastian Krysmanski bugs at mercurial.selenic.com
Mon Apr 2 07:34:32 CDT 2012


New submission from Sebastian Krysmanski <infomail at lordb.de>:

With Subversion, you can sync a remote repository, either the full
repository or only a certain sub directory of it. Syncing only a sub
directory results in empty revisions. When such an empty revision happens to
be the head revision when trying to convert a "partially synced" SVN
repository, Mercurial fails with:

  abort: svn: revision 2202 not found

I ran across this while trying to convert the Proj repository from:
http://svn.osgeo.org/metacrs/proj/ (with revision 2202).

Here the repository root is actually only http://svn.osgeo.org/metacrs/, so
I was syncing a sub directory.

Here's the output of the conversion process:

  $ hg convert --traceback --datesort --debug
/media/sf_VM-Share/Geometry/proj/proj-svn
/media/sf_VM-Share/Geometry/proj/proj-hg

  reparent to file:///media/sf_VM-Share/Geometry/proj/proj-svn
  run hg sink pre-conversion action
  scanning source...
  scanning: 1 revisions
  fetching revision log for "" from 2202 to 0
  revision 2202 has no entries
  revision 2201 has no entries
  revision 2200 has no entries
  parsing revision 2199 (1 changes)
  parsing revision 2198 (2 changes)
  revision 2197 has no entries
  parsing revision 2196 (4 changes)
  parsing revision 2195 (1 changes)
  [...]
  revision 3 has no entries
  revision 2 has no entries
  parsing revision 1 (1 changes)
  revision 0 has no entries
  run hg sink post-conversion action
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py",
line 87, in _runcatch
      return _dispatch(req)
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py",
line 683, in _dispatch
      cmdpats, cmdoptions)
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py",
line 465, in runcommand
      ret = _runcommand(ui, options, cmd, d)
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py",
line 737, in _runcommand
      return checkargs()
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py",
line 691, in checkargs
      return cmdfunc()
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py",
line 680, in <lambda>
      d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
    File "/usr/local/lib/python2.7/dist-packages/mercurial/util.py", line
456, in check
      return func(*args, **kwargs)
    File "/usr/local/lib/python2.7/dist-packages/hgext/convert/__init__.py",
line 269, in convert
      return convcmd.convert(ui, src, dest, revmapfile, **opts)
    File "/usr/local/lib/python2.7/dist-packages/hgext/convert/convcmd.py",
line 469, in convert
      c.convert(sortmode)
    File "/usr/local/lib/python2.7/dist-packages/hgext/convert/convcmd.py",
line 365, in convert
      parents = self.walktree(heads)
    File "/usr/local/lib/python2.7/dist-packages/hgext/convert/convcmd.py",
line 136, in walktree
      commit = self.cachecommit(n)
    File "/usr/local/lib/python2.7/dist-packages/hgext/convert/convcmd.py",
line 318, in cachecommit
      commit = self.source.getcommit(rev)
    File
"/usr/local/lib/python2.7/dist-packages/hgext/convert/subversion.py", line
443, in getcommit
      raise util.Abort(_('svn: revision %s not found') % revnum)
  Abort: svn: revision 2202 not found
  abort: svn: revision 2202 not found

----------
messages: 19496
nosy: manski
priority: bug
status: unread
title: hg convert fails for subversion on empty head revision

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue3347>
____________________________________________________


More information about the Mercurial-devel mailing list