diff options
author | Patrick Steinhardt <ps@pks.im> | 2025-03-12 16:56:16 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2025-03-12 11:31:19 -0700 |
commit | 82c39c6055b5340f0e50acbe01a97e51d3907fec (patch) | |
tree | 74948f55c8e575f754cbbd00842f158b44e3f605 /builtin/commit-tree.c | |
parent | cec2b6f55a805c010d2acc81abf4cbc41b712130 (diff) |
refs/iterator: provide infrastructure to re-seek iterators
Reftable iterators need to be scrapped after they have either been
exhausted or aren't useful to the caller anymore, and it is explicitly
not possible to reuse them for iterations. But enabling for reuse of
iterators may allow us to tune them by reusing internal state of an
iterator. The reftable iterators for example can already be reused
internally, but we're not able to expose this to any users outside of
the reftable backend.
Introduce a new `.seek` function in the ref iterator vtable that allows
callers to seek an iterator multiple times. It is expected to be
functionally the same as calling `refs_ref_iterator_begin()` with a
different (or the same) prefix.
Note that it is not possible to adjust parameters other than the seeked
prefix for now, so exclude patterns, trimmed prefixes and flags will
remain unchanged. We do not have a usecase for changing these parameters
right now, but if we ever find one we can adapt accordingly.
Implement the callback for trivial cases. The other iterators will be
implemented in subsequent commits.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/commit-tree.c')
0 files changed, 0 insertions, 0 deletions