]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ps/refs-for-each'
authorJunio C Hamano <gitster@pobox.com>
Mon, 9 Mar 2026 21:36:55 +0000 (14:36 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Mar 2026 21:36:55 +0000 (14:36 -0700)
Code refactoring around refs-for-each-* API functions.

* ps/refs-for-each:
  refs: replace `refs_for_each_fullref_in()`
  refs: replace `refs_for_each_namespaced_ref()`
  refs: replace `refs_for_each_glob_ref()`
  refs: replace `refs_for_each_glob_ref_in()`
  refs: replace `refs_for_each_rawref_in()`
  refs: replace `refs_for_each_rawref()`
  refs: replace `refs_for_each_ref_in()`
  refs: improve verification for-each-ref options
  refs: generalize `refs_for_each_fullref_in_prefixes()`
  refs: generalize `refs_for_each_namespaced_ref()`
  refs: speed up `refs_for_each_glob_ref_in()`
  refs: introduce `refs_for_each_ref_ext`
  refs: rename `each_ref_fn`
  refs: rename `do_for_each_ref_flags`
  refs: move `do_for_each_ref_flags` further up
  refs: move `refs_head_ref_namespaced()`
  refs: remove unused `refs_for_each_include_root_ref()`

14 files changed:
1  2 
builtin/fetch.c
builtin/fsck.c
builtin/receive-pack.c
fetch-pack.c
ref-filter.c
refs.c
refs.h
refs/files-backend.c
refs/packed-backend.c
refs/reftable-backend.c
revision.c
upload-pack.c
worktree.c
worktree.h

diff --cc builtin/fetch.c
Simple merge
diff --cc builtin/fsck.c
Simple merge
Simple merge
diff --cc fetch-pack.c
Simple merge
diff --cc ref-filter.c
Simple merge
diff --cc refs.c
Simple merge
diff --cc refs.h
index f3a1d604ad89a133b6826df127e669b8cc82b959,9b5d57a9b7994fba38e962d3a67673ba7b664f6c..d98c1fc5913d9848af838fea92c18008932dd47f
--- 1/refs.h
--- 2/refs.h
+++ b/refs.h
@@@ -1426,19 -1431,6 +1431,19 @@@ void ref_iterator_free(struct ref_itera
   * iterator style.
   */
  int do_for_each_ref_iterator(struct ref_iterator *iter,
-                            each_ref_fn fn, void *cb_data);
+                            refs_for_each_cb fn, void *cb_data);
  
 +/*
 + * Git only recognizes a directory as a repository if it contains:
 + * - HEAD file
 + * - refs/ folder
 + * While it is necessary within the files backend, newer backends may not
 + * follow the same structure. To go around this, we create stubs as necessary.
 + *
 + * If provided with a 'refs_heads_content', we create the 'refs/heads/head' file
 + * with the provided message.
 + */
 +void refs_create_refdir_stubs(struct repository *repo, const char *refdir,
 +                            const char *refs_heads_content);
 +
  #endif /* REFS_H */
Simple merge
Simple merge
Simple merge
diff --cc revision.c
Simple merge
diff --cc upload-pack.c
Simple merge
diff --cc worktree.c
Simple merge
diff --cc worktree.h
Simple merge