[issue2939] Revision range foo^:bar is not valid and throws exception, even though foo:bar^ works.

Justin Lebar bugs at mercurial.selenic.com
Tue Aug 2 16:19:52 CDT 2011


New submission from Justin Lebar <justin.lebar at gmail.com>:

I suspect this bug may already be filed, but I couldn't find it...

With the old parentrevspec extension, you could specify foo^:bar as a
revision range.  But in 1.9, you now have to say foo^1:bar.  foo:bar^ and
bar^ work, which suggests that the behavior on "foo^:bar" isn't intentional,
and the problem is parsing "^:".

$ hg log tip:tip^
(expected output)

$ hg log tip^:tip
** unknown exception encountered, please report by visiting
**  http://mercurial.selenic.com/wiki/BugTracker
** Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2]
** Mercurial Distributed SCM (version 1.9)
** Extensions loaded: mq, graphlog, rebase, extdiff, record, pager,
progress, purge, color, convert, relink, prompt, paste, qimportbz, bzexport,
patience, inotify
Traceback (most recent call last):
  File "/usr/local/bin/hg", line 5, in <module>
    pkg_resources.run_script('mercurial==1.9', 'hg')
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 467, in
run_script
    self.require(requires)[0].run_script(script_name, ns)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1200, in
run_script
    execfile(script_filename, namespace, namespace)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/EGG-INFO/scripts/hg",
line 38, in <module>
    mercurial.dispatch.run()
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 27, in run
    sys.exit(dispatch(request(sys.argv[1:])))
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 64, in dispatch
    return _runcatch(req)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 87, in _runcatch
    return _dispatch(req)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 675, in _dispatch
    cmdpats, cmdoptions)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 454, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/extensions.py",
line 182, in wrap
    return wrapper(origfn, *args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/hgext/color.py",
line 367, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/extensions.py",
line 182, in wrap
    return wrapper(origfn, *args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/hgext/pager.py",
line 107, in pagecmd
    return orig(ui, options, cmd, cmdfunc)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 729, in _runcommand
    return checkargs()
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 683, in checkargs
    return cmdfunc()
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/dispatch.py",
line 672, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/util.py",
line 385, in check
    return func(*args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/extensions.py",
line 137, in wrap
    util.checksignature(origfn), *args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/util.py",
line 385, in check
    return func(*args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/hgext/graphlog.py",
line 395, in graph
    return orig(*args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/util.py",
line 385, in check
    return func(*args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/extensions.py",
line 137, in wrap
    util.checksignature(origfn), *args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/util.py",
line 385, in check
    return func(*args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/hgext/mq.py",
line 3218, in mqcommand
    return orig(ui, repo, *args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/util.py",
line 385, in check
    return func(*args, **kwargs)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/commands.py",
line 3445, in log
    for ctx in cmdutil.walkchangerevs(repo, matchfn, opts, prep):
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/cmdutil.py",
line 952, in walkchangerevs
    revs = scmutil.revrange(repo, opts['rev'] or [defrange])
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/scmutil.py",
line 539, in revrange
    for r in m(repo, range(len(repo))):
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/revset.py",
line 1017, in mfunc
    return getset(repo, subset, tree)
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/revset.py",
line 120, in getset
    return methods[x[0]](repo, subset, *x[1:])
  File
"/usr/local/lib/python2.7/dist-packages/mercurial-1.9-py2.7-linux-x86_64.egg/mercurial/revset.py",
line 676, in parentspec
    n = int(n[1])
TypeError: int() argument must be a string or a number, not 'tuple'

----------
messages: 17052
nosy: jlebar
priority: bug
status: unread
title: Revision range foo^:bar is not valid and throws exception, even though foo:bar^ works.

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


More information about the Mercurial-devel mailing list