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(-)