[issue3013] svn convert doesn't handle (invalid?) revision map (shamap) entries

Søren Løvborg bugs at mercurial.selenic.com
Fri Sep 16 06:41:26 CDT 2011


New submission from Søren Løvborg <kwi at kwi.dk>:

Using Mercurial 1.9.2+19-ec222a29bdf0 from Ubuntu "Mercurial stable 
snapshots" PPA.

When converting from Svn to Hg, convert throws an exception if there's a Hg 
to Hg entry in the shamap of the target repository, because it expects a 
Svn revision id and gets an Hg revision id.

This could e.g. happen because of issue 3012, if one converts from Svn to 
Hg to Hg, and then tries to rerun the first Svn to Hg conversion.

Traceback (most recent call last):
  File "/usr/bin/hg", line 38, in <module>
    mercurial.dispatch.run()
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 27, in run
    sys.exit(dispatch(request(sys.argv[1:])))
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 64, in 
dispatch
    return _runcatch(req)
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 87, in 
_runcatch
    return _dispatch(req)
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 688, in 
_dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 463, in 
runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 742, in 
_runcommand
    return checkargs()
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 696, in 
checkargs
    return cmdfunc()
  File "/usr/lib/pymodules/python2.7/mercurial/dispatch.py", line 685, in 
<lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/pymodules/python2.7/mercurial/util.py", line 385, in check
    return func(*args, **kwargs)
  File "/usr/lib/pymodules/python2.7/hgext/convert/__init__.py", line 269, 
in convert
    return convcmd.convert(ui, src, dest, revmapfile, **opts)
  File "/usr/lib/pymodules/python2.7/hgext/convert/convcmd.py", line 445, 
in convert
    c.convert(sortmode)
  File "/usr/lib/pymodules/python2.7/hgext/convert/convcmd.py", line 339, 
in convert
    self.source.setrevmap(self.map)
  File "/usr/lib/pymodules/python2.7/hgext/convert/subversion.py", line 
305, in setrevmap
    uuid, module, revnum = revsplit(revid)
  File "/usr/lib/pymodules/python2.7/hgext/convert/subversion.py", line 47, 
in revsplit
    url, revnum = rev.rsplit('@', 1)
ValueError: need more than 1 value to unpack

I'm not sure if such an entry should simply be ignored, or if convert just 
needs more graceful error handling of unparsable revmap entries.

----------
messages: 17483
nosy: kwi
priority: bug
status: unread
title: svn convert doesn't handle (invalid?) revision map (shamap) entries
topic: 1.9, convert, svn

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


More information about the Mercurial-devel mailing list