[issue1555] Import from Subversion repository fails when branch name contains @-symbol

Michael Springmann mercurial-bugs at selenic.com
Fri Mar 13 15:29:03 CDT 2009


New submission from Michael Springmann <michael.springmann at unibas.ch>:

When converting repository where a branch contains a name including the @-
symbol, this will cause the identification of revision numbers to fail since 
this splits at the first @-symbol in the name.

** unknown exception encountered, details follow
** report bug details to http://www.selenic.com/mercurial/bts
** or mercurial at selenic.com
** Mercurial Distributed SCM (version unknown)
** Extensions loaded: convert, extdiff, fetch, graphlog, hgk, keyword, mq
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 5, in <module>
    pkg_resources.run_script('mercurial==unknown', 'hg')
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/
python/pkg_resources.py", line 442, in run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/
python/pkg_resources.py", line 1160, in run_script
    execfile(script_filename, namespace, namespace)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/EGG-INFO/scripts/hg", line 27, in <module>
    mercurial.dispatch.run()
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 25, in dispatch
    return _runcatch(u, args)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 41, in _runcatch
    return _dispatch(ui, args)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 372, in _dispatch
    return runcommand(lui, repo, cmd, fullargs, ui, options, d)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 247, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 417, in _runcommand
    return checkargs()
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 377, in checkargs
    return cmdfunc()
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/dispatch.py", line 371, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/mercurial/util.py", line 718, in check
    return func(*args, **kwargs)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/__init__.py", line 199, in convert
    return convcmd.convert(ui, src, dest, revmapfile, **opts)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/convcmd.py", line 340, in convert
    c.convert()
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/convcmd.py", line 265, in convert
    parents = self.walktree(heads)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/convcmd.py", line 105, in walktree
    commit = self.cachecommit(n)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/convcmd.py", line 221, in cachecommit
    commit = self.source.getcommit(rev)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/subversion.py", line 372, in getcommit
    self._fetch_revisions(revnum, stop)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/subversion.py", line 820, in _fetch_revisions
    date, message)
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/subversion.py", line 754, in parselogentry
    prevmodule, prevnum = self.revsplit(previd)[1:]
  File "/Library/Python/2.5/site-packages/mercurial-unknown-py2.5-macosx-10.5-
i386.egg/hgext/convert/subversion.py", line 467, in revsplit
    revnum = int(revnum)
ValueError: invalid literal for int() with base 10: 'sciemce at 347'


Simple solution is to use rsplit instead of split in method revsplit of 
hgext.subversion.py

----------
files: subversion-at-patch.diff
messages: 8813
nosy: michael
priority: bug
status: unread
title: Import from Subversion repository fails when branch name contains @-symbol
topic: 1.2, convert, svn

____________________________________________________
Mercurial issue tracker <mercurial-bugs at selenic.com>
<http://www.selenic.com/mercurial/bts/issue1555>
____________________________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: subversion-at-patch.diff
Type: application/octet-stream
Size: 802 bytes
Desc: not available
Url : http://selenic.com/pipermail/mercurial-devel/attachments/20090313/6e2085aa/attachment.obj 


More information about the Mercurial-devel mailing list