comparison mercurial/cext/parsers.c @ 38012:0304f22497fa

revlog: use node tree (native code) for shortest() calculation I want to rewrite revlog.shortest() to disambiguate only among hex nodeids and then disambiguate the result with revnums at a higher level (in scmutil). However, that would slow down `hg log -T '{shortest(node,1)}\n'` from 5.0s to 6.8s, which I wasn't sure would be acceptable. So this patch makes revlog.shortest() use the node tree for finding the length of the shortest prefix that's unambiguous among nodeids. Once that has been found, it makes it longer until it is also not ambiguous with a revnum. This speeds up `hg log -T '{shortest(node,1)}\n'` from 5.0s to 4.0s. Differential Revision: https://phab.mercurial-scm.org/D3499
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 02 May 2018 23:17:58 -0700
parents 186c6df3a373
children adacefb0b7ea 6104b203bec8
comparison
equal deleted inserted replaced
38011:7932be8b0559 38012:0304f22497fa
711 711
712 void dirs_module_init(PyObject *mod); 712 void dirs_module_init(PyObject *mod);
713 void manifest_module_init(PyObject *mod); 713 void manifest_module_init(PyObject *mod);
714 void revlog_module_init(PyObject *mod); 714 void revlog_module_init(PyObject *mod);
715 715
716 static const int version = 4; 716 static const int version = 5;
717 717
718 static void module_init(PyObject *mod) 718 static void module_init(PyObject *mod)
719 { 719 {
720 PyModule_AddIntConstant(mod, "version", version); 720 PyModule_AddIntConstant(mod, "version", version);
721 721