Re: [PATCH v3] rev-list: exclude promisor objects at walk time
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 9, 2019, 15:14 UTC
- Message-ID
- <xmqqo95f43dq.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <9856e7fc74f51b60ae162cbed3f5c0cf8c603222.1554757275.git.steadmon@google.com>
Josh Steadmon <steadmon@google.com> writes:
Show 21 quoted lines
> 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@google.com> > Helped-By: Jeff King <peff@peff.net> > Helped-By: Jonathan Nieder <jrnieder@gmail.com> > Signed-off-by: Josh Steadmon <steadmon@google.com> > > Signed-off-by: Josh Steadmon <steadmon@google.com>
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(-)