From: Michael Haggerty <mhagger@xxxxxxxxxxxx> Here is another installment of the "hierarchical refs" saga. This patch series (obviously) builds on the changes in master that removed extra_refs. This group of patches does some cleanup then makes the transition to storing reference caches hierarchically. It also includes the first benefit of the hierarchical storage scheme, namely that searching for individual references becomes more efficient (though as yet all references are read into the cache if any references are needed, so the benefit is limited). I will have limited Internet connectivity for the next week, so I apologize in advance if I don't react quickly to feedback. But I wanted to throw at least part of this reworked "ref-api" patch series back into the ring while the new release cycle is still fresh. Michael Haggerty (15): refs.c: reorder definitions more logically refs: manage current_ref within do_one_ref() do_for_each_ref_in_array(): new function do_for_each_ref_in_arrays(): new function repack_without_ref(): reimplement using do_for_each_ref_in_array() names_conflict(): new function, extracted from is_refname_available() names_conflict(): simplify implementation is_refname_available(): reimplement using do_for_each_ref_in_array() free_ref_entry(): new function check_refname_component(): return 0 for zero-length components struct ref_entry: nest the value part in a union refs.c: rename ref_array -> ref_dir sort_ref_dir(): simplify logic refs: store references hierarchically do_for_each_ref(): only iterate over the subtree that was requested refs.c | 1036 +++++++++++++++++++++++++++++++++++++++++----------------------- refs.h | 7 +- 2 files changed, 670 insertions(+), 373 deletions(-) -- 1.7.10 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html