Hi Patrick
On 06/02/2024 05:33, Patrick Steinhardt wrote:
On Mon, Feb 05, 2024 at 06:48:52PM +0000, Phillip Wood wrote:
Hi Karthik
On 29/01/2024 11:35, Karthik Nayak wrote:
When the user uses an empty string pattern (""), we don't match any refs
in git-for-each-ref(1). This is because in git-for-each-ref(1), we use
path based matching and an empty string doesn't match any path.
In this commit we change this behavior by making empty string pattern
match all references. This is done by introducing a new flag
`FILTER_REFS_NO_FILTER` in `ref-filter.c`, which uses the newly
introduced `refs_for_each_all_refs()` function to iterate over all the
refs in the repository.
It actually iterates over all the refs in the current worktree, not all the
refs in the repository. I have to say that I find it extremely unintuitive
that "" behaves differently to not giving a pattern. I wonder if we can find
a better UI here - perhaps a command line option to include pseudorefs?
I tend to agree, and have argued for a flag in another thread, too [1].
Thanks for that, I'd missed that discussion
Something like `--show-all-refs` feels a lot more intuitive to me and
also doesn't have the potential to break preexisting scripts which pass
the empty prefix (which would have returned the empty set of refs, but
now returns all refs).
Yes, and as you point out in that other thread flag would allow the
pseuderefs to be filtered and allow us to show the refs for all
worktrees as well in the future.
Best Wishes
Phillip
[1]: https://lore.kernel.org/git/ZZWCXFghtql4i4YE@tanuki/
Patrick