D3453: revlog: use radix tree also for matching keys shorter than 4 hex digits

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Sun May 6 04:53:22 UTC 2018


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I don't know what the reason for the 4-digit limit was, and I can't
  think of any real disadvantages of using the radix tree also when the
  requested minimum length is short. This speeds up `hg log -T
  '{shortest(node,1)}\n'` from 2m16s to 4.5s by making that not fall
  back to pure code.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/cext/revlog.c

CHANGE DETAILS

diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c
--- a/mercurial/cext/revlog.c
+++ b/mercurial/cext/revlog.c
@@ -1251,7 +1251,7 @@
 	if (!PyArg_ParseTuple(args, PY23("s#", "y#"), &node, &nodelen))
 		return NULL;
 
-	if (nodelen < 4) {
+	if (nodelen < 1) {
 		PyErr_SetString(PyExc_ValueError, "key too short");
 		return NULL;
 	}



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


More information about the Mercurial-devel mailing list