]> Kevux Git Server - rit/commit
refs: generalize `refs_for_each_namespaced_ref()`
authorPatrick Steinhardt <ps@pks.im>
Mon, 23 Feb 2026 11:59:42 +0000 (12:59 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 23 Feb 2026 21:21:18 +0000 (13:21 -0800)
commit5387919327574b5067f7efd986fca8793c95c71a
tree60f3986308d658326c19f173a1d9da8022614715
parentdaf01b1366ca644d45374451560aeeb4fc8a7765
refs: generalize `refs_for_each_namespaced_ref()`

The function `refs_for_each_namespaced_ref()` iterates through all
references that are part of the current ref namespace. This namespace
can be configured by setting the `GIT_NAMESPACE` environment variable
and is then retrieved by calling `get_git_namespace()`.

If a namespace is configured, then we:

  - Obviously only yield refs that exist in this namespace.

  - Rewrite exclude patterns so that they work for the given namespace,
    if any namespace is currently configured.

Port this logic to `refs_for_each_ref_ext()` by adding a new `namespace`
field to the options structure. This gives callers more flexibility as
they can decide by themselves whether they want to use the globally
configured or an arbitrary other namespace.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
refs.h