Thanks to Junio for reviewing v2 of this patch series. The speedup coming from introducing the field exists, but is minimal, here are the times for 1000 runs of git ls-files on the Webkit index, first without the ce_namelen field, and then with the ce_namelen field. $ time ./test.sh real 4m40.895s user 3m39.642s sys 0m40.159s $ time ./test.sh real 4m34.872s user 3m37.176s sys 0m40.401s 1/3 is a bugfix for very long files which share at least 4096 characters in their filename. It also includes a test, tough I'm not sure I have put it in the right place. The other two patches are rerolls from v2 of this series. [PATCH v3 1/3] read-cache.c: Handle long filenames correctly [PATCH v3 2/3] Strip namelen out of ce_flags into a ce_namelen field [PATCH v3 3/3] Replace strlen() with ce_namelen() builtin/apply.c | 3 ++- builtin/blame.c | 3 ++- builtin/checkout.c | 3 ++- builtin/update-index.c | 9 ++++++--- cache.h | 19 ++++++------------- read-cache.c | 62 +++++++++++++++++++++++++++++++++++++++----------------------- t/t0007-long-filenames.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tree.c | 7 ++++--- unpack-trees.c | 5 +++-- 9 files changed, 126 insertions(+), 47 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html