Jeff King <peff@xxxxxxxx> writes: > - Note that all of this assumes you don't have a commit-graph file. if > you do, then the heap usage is even lower, and the runtime is 10x > faster. So in that sense this is not urgent, as there's a much > better solution. But since it's such an obvious and easy win for > fallback cases (including commits which aren't yet in the graph > file), there's no reason not to. Sounds sensible. > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > Just pulling this out of the discussion in: > > https://lore.kernel.org/git/YswuaPx6Mk7YkIim@xxxxxxxxxxxxxxxxxxxxxxx/ > > as it's an easy win. > > I doubt that anyone even cares about restoring the value of > save_commit_buffer. So this _could_ be a one-liner turning it off, > rather than doing the save/restore dance. I was mostly erring on the > conservative side, but maybe fewer lines of code is a worthwhile thing. > > ref-filter.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/ref-filter.c b/ref-filter.c > index d3c90e5dbe..bdf39fa761 100644 > --- a/ref-filter.c > +++ b/ref-filter.c > @@ -2405,13 +2405,17 @@ static void reach_filter(struct ref_array *array, > int filter_refs(struct ref_array *array, struct ref_filter *filter, unsigned int type) > { > struct ref_filter_cbdata ref_cbdata; > + int save_commit_buffer_orig; > int ret = 0; > > ref_cbdata.array = array; > ref_cbdata.filter = filter; > > filter->kind = type & FILTER_REFS_KIND_MASK; > > + save_commit_buffer_orig = save_commit_buffer; > + save_commit_buffer = 0; > + > init_contains_cache(&ref_cbdata.contains_cache); > init_contains_cache(&ref_cbdata.no_contains_cache); > > @@ -2444,6 +2448,7 @@ int filter_refs(struct ref_array *array, struct ref_filter *filter, unsigned int > reach_filter(array, filter->reachable_from, INCLUDE_REACHED); > reach_filter(array, filter->unreachable_from, EXCLUDE_REACHED); > > + save_commit_buffer = save_commit_buffer_orig; > return ret; > }