# Re: \[PATCH 2/2\] for-each-ref: add --count-matches option

- From: Junio C Hamano \<hidden\>
- Date: 2023-06-26 16:17:27 
- List: git
- Page: https://ratatoskr.run/git/2023/06/7971828
- Thread: https://ratatoskr.run/git/2023/06/7971828/t.md

```text
"Derrick Stolee via GitGitGadget" [ref] writes:

> Each of these approaches is wasteful as it requires sending the list of
> matching reference names across a pipe plus the cost of parsing that
> output.
>
> Instead, it would be helpful to have a Git command that counts the
> number of refs matching a list of patterns.

For for-each-ref (which can be reused by branch and tag for no
cost), I am on the fence but slightly in favor (partly because the
code has already been written).  But I have to wonder where changes
that come from the above reasoning need to end, though.

Do we count branches and tags because "git branch --list | wc -l" is
too costly?  Should we teach "git remote" the same trick?  How about
"git stash list"?  "git show-index $pack_index"?  "git ls-files"?

How do we decide where to draw the line?  When a command invocation
in a large repository can produce records exceeding a million?
```
