Web lists-archives.com

Re: [PATCH v3] rev-list: exclude promisor objects at walk time




Josh Steadmon <steadmon@xxxxxxxxxx> writes:

> For large repositories, enumerating the list of all promisor objects (in
> order to exclude them from a rev-list walk) can take a significant
> amount of time).
>
> When --exclude-promisor-objects is passed to rev-list, don't enumerate
> the promisor objects. Instead, filter them (and any children objects)
> during the actual graph walk.
>
> Remove the mark_uninteresting() function as it's not used anywhere else.
>
> When testing against a large repo [1], this patch reduces the
> connectivity check runtime from 3 minutes to ~7 seconds.
>
> [1]: https://android.googlesource.com/platform/frameworks/base/
>
> Helped-By: Jonathan Tan <jonathantanmy@xxxxxxxxxx>
> Helped-By: Jeff King <peff@xxxxxxxx>
> Helped-By: Jonathan Nieder <jrnieder@xxxxxxxxx>
> Signed-off-by: Josh Steadmon <steadmon@xxxxxxxxxx>
>
> Signed-off-by: Josh Steadmon <steadmon@xxxxxxxxxx>

I've dealt with the stray double-sign-off locally, but is there
anything else planned for v4 or later?  Is this performance-only
change, or does it have an externally observable behaviour change
that we can easily add to our test suite?

>  list-objects.c | 20 ++++++++++++++++++++
>  revision.c     | 16 ----------------
>  2 files changed, 20 insertions(+), 16 deletions(-)