[PATCH] revset: use manifest.matches in _follow revset

Sean Farley sean at farley.io
Fri Feb 5 16:18:49 EST 2016


Durham Goode <durham at fb.com> writes:

> # HG changeset patch
> # User Durham Goode <durham at fb.com>
> # Date 1454705079 28800
> #      Fri Feb 05 12:44:39 2016 -0800
> # Node ID 4bf06bc950fcbee8fc65cd3fd17d366a27603ad9
> # Parent  01a5143cd25f285f8c745a92986cd7186bb32c90
> revset: use manifest.matches in _follow revset
>
> The old _follow revset iterated over every file in the commit and checked if it
> matched. For repos with large manifests, this could take 500ms. By switching to
> use manifest.matches() we can take advantage of the fastpaths built in to
> manifest.py that allows iterating over only the files in the matcher when it's a
> simple matcher. This brings the time spent down from 500ms to 0ms during simple
> operations like 'hg log -f file.txt'.

This looks great to me. Awesome speed up.


More information about the Mercurial-devel mailing list