git/refs
Michael Haggerty e00d1a4ff7 refs: record the ref_store in ref_cache, not ref_dir
Instead of keeping a pointer to the `ref_store` in every `ref_dir`
entry, store it once in `struct ref_cache`, and change `struct
ref_dir` to include a pointer to its containing `ref_cache` instead.
This makes it easier to add to the information that is accessible from
a `ref_dir` without increasing the size of every `ref_dir` instance.

Note that previously, every `ref_dir` pointed at the containing
`files_ref_store` regardless of whether it was a part of the loose or
packed reference cache. Now we have to be sure to initialize the
instances to point at the correct containing `ref_cache`. So change
`create_dir_entry()` to take a `ref_cache` parameter, and change its
callers to pass the correct `ref_cache` depending on the purpose of
the new `dir_entry`.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-04-16 21:32:46 -07:00
..
files-backend.c refs: record the ref_store in ref_cache, not ref_dir 2017-04-16 21:32:46 -07:00
iterator.c
ref-cache.c refs: record the ref_store in ref_cache, not ref_dir 2017-04-16 21:32:46 -07:00
ref-cache.h refs: record the ref_store in ref_cache, not ref_dir 2017-04-16 21:32:46 -07:00
refs-internal.h refs_verify_refname_available(): implement once for all backends 2017-04-16 21:32:45 -07:00