From: Junio C Hamano Date: Tue, 09 Apr 2019 15:14:41 GMT Subject: Re: [PATCH v3] rev-list: exclude promisor objects at walk time Message-ID: In-Reply-To: <9856e7fc74f51b60ae162cbed3f5c0cf8c603222.1554757275.git.steadmon@google.com> Josh Steadmon 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 > Helped-By: Jeff King > Helped-By: Jonathan Nieder > Signed-off-by: Josh Steadmon > > Signed-off-by: Josh Steadmon 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(-)