D4120: shortest: use nodetree for finding shortest node within revset

yuja (Yuya Nishihara) phabricator at mercurial-scm.org
Tue Aug 21 07:42:29 EDT 2018


yuja added a comment.


  >   Hmm, it passes for me. How does it fail for you?
  
  Okay, it's a real bug. Filling Py_ssize_t as int.
  
    static PyObject *nt_insert_py(nodetree *self, PyObject *args)
    {
    	Py_ssize_t rev;
    	const char *node;
    	if (!PyArg_ParseTuple(args, "i", &rev))
  
  
  
    Traceback (most recent call last):
      File "hg", line 41, in <module>
        dispatch.run()
      File "mercurial/dispatch.py", line 90, in run
        status = dispatch(req)
      File "mercurial/dispatch.py", line 213, in dispatch
        ret = _runcatch(req) or 0
      File "mercurial/dispatch.py", line 354, in _runcatch
        return _callcatch(ui, _runcatchfunc)
      File "mercurial/dispatch.py", line 362, in _callcatch
        return scmutil.callcatch(ui, func)
      File "mercurial/scmutil.py", line 164, in callcatch
        return func()
      File "mercurial/dispatch.py", line 344, in _runcatchfunc
        return _dispatch(req)
      File "mercurial/dispatch.py", line 982, in _dispatch
        cmdpats, cmdoptions)
      File "mercurial/dispatch.py", line 728, in runcommand
        ret = _runcommand(ui, options, cmd, d)
      File "mercurial/dispatch.py", line 990, in _runcommand
        return cmdfunc()
      File "mercurial/dispatch.py", line 979, in <lambda>
        d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
      File "mercurial/util.py", line 1531, in check
        return func(*args, **kwargs)
      File "mercurial/dispatch.py", line 592, in __call__
        return util.checksignature(self.fn)(ui, *args, **opts)
      File "mercurial/util.py", line 1531, in check
        return func(*args, **kwargs)
      File "mercurial/commands.py", line 3643, in log
        displayfn(ui, repo, revs, displayer, getrenamed)
      File "mercurial/logcmdutil.py", line 897, in displayrevs
        displayer.show(ctx, copies=copies)
      File "mercurial/logcmdutil.py", line 186, in show
        self._show(ctx, copies, props)
      File "mercurial/logcmdutil.py", line 460, in _show
        self.ui.write(self.t.render(key, props))
      File "mercurial/templater.py", line 926, in render
        return b''.join(self.generate(t, mapping))
      File "mercurial/util.py", line 1442, in increasingchunks
        for chunk in source:
      File "mercurial/templateutil.py", line 659, in flatten
        for i in thing:
      File "mercurial/templateutil.py", line 853, in runtemplate
        yield evalrawexp(context, mapping, arg)
      File "mercurial/templateutil.py", line 707, in evalrawexp
        return func(context, mapping, data)
      File "mercurial/templatefuncs.py", line 634, in shortest
        return scmutil.shortesthexnodeidprefix(repo, node, minlength, cache)
      File "mercurial/scmutil.py", line 531, in shortesthexnodeidprefix
        nodetree.insert(r)
    ValueError: revlog index out of range

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4120

To: martinvonz, #hg-reviewers
Cc: yuja, mercurial-devel


More information about the Mercurial-devel mailing list