D4120: shortest: use nodetree for finding shortest node within revset
Yuya Nishihara
yuya at tcha.org
Tue Aug 21 07:42:03 EDT 2018
> 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
```
More information about the Mercurial-devel
mailing list