]> git.ipfire.org Git - thirdparty/git.git/commit - patch-ids.c
Merge branch 'tb/refs-exclusion-and-packed-refs'
authorJunio C Hamano <gitster@pobox.com>
Fri, 21 Jul 2023 20:47:26 +0000 (13:47 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Jul 2023 20:47:26 +0000 (13:47 -0700)
commit39fe402d6727efb6c98ddca19fae1f094ffaa6b3
tree816dae9b193dd9a7521d2bc213c10ff8010c277a
parentcba07a324d2cda06dd7a7b35b4579f800de024aa
parent98456eff08069696708b24ab4f1152f06a3b47f9
Merge branch 'tb/refs-exclusion-and-packed-refs'

Enumerating refs in the packed-refs file, while excluding refs that
match certain patterns, has been optimized.

* tb/refs-exclusion-and-packed-refs:
  ls-refs.c: avoid enumerating hidden refs where possible
  upload-pack.c: avoid enumerating hidden refs where possible
  builtin/receive-pack.c: avoid enumerating hidden references
  refs.h: implement `hidden_refs_to_excludes()`
  refs.h: let `for_each_namespaced_ref()` take excluded patterns
  revision.h: store hidden refs in a `strvec`
  refs/packed-backend.c: add trace2 counters for jump list
  refs/packed-backend.c: implement jump lists to avoid excluded pattern(s)
  refs/packed-backend.c: refactor `find_reference_location()`
  refs: plumb `exclude_patterns` argument throughout
  builtin/for-each-ref.c: add `--exclude` option
  ref-filter.c: parameterize match functions over patterns
  ref-filter: add `ref_filter_clear()`
  ref-filter: clear reachable list pointers after freeing
  ref-filter.h: provide `REF_FILTER_INIT`
  refs.c: rename `ref_filter`
21 files changed:
Documentation/git-for-each-ref.txt
builtin/branch.c
builtin/for-each-ref.c
builtin/receive-pack.c
builtin/tag.c
http-backend.c
ls-refs.c
ref-filter.c
refs.c
refs.h
refs/debug.c
refs/files-backend.c
refs/packed-backend.c
refs/refs-internal.h
revision.c
revision.h
t/helper/test-reach.c
t/helper/test-ref-store.c
t/t6300-for-each-ref.sh
trace2.h
upload-pack.c