]> git.ipfire.org Git - thirdparty/git.git/commitdiff
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)
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:
1  2 
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

Simple merge
Simple merge
Simple merge
Simple merge
diff --cc builtin/tag.c
Simple merge
diff --cc http-backend.c
Simple merge
diff --cc ls-refs.c
Simple merge
diff --cc ref-filter.c
Simple merge
diff --cc refs.c
Simple merge
diff --cc refs.h
Simple merge
diff --cc refs/debug.c
Simple merge
Simple merge
index 27bd6339ff37d0dbe3d6e6bf67eb704624c90638,97cc2090fdf11eb94259fc8c66d6db7fc7b07791..59c78d7941f8d5e05fec6c895aafeb41803b919d
  #include "../iterator.h"
  #include "../lockfile.h"
  #include "../chdir-notify.h"
 +#include "../statinfo.h"
  #include "../wrapper.h"
  #include "../write-or-die.h"
+ #include "../trace2.h"
  
  enum mmap_strategy {
        /*
Simple merge
diff --cc revision.c
Simple merge
diff --cc revision.h
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc trace2.h
Simple merge
diff --cc upload-pack.c
Simple merge