Re-roll of mh/ref-races. Thanks to Peff, Junio, and Ramsay for
Changes since v1:
* mh/reflife has graduated to master, so this patch series now applies
directly to master.
* Some trivial constness adjustments were necessary because of
21a6b9fa read-cache: mark cache_entry pointers const
* Better explain (in comments and log message) patch 01/12.
* In 04/12, access struct lock_file::fd directly instead of keeping
a separate copy in struct packed_ref_cache.
Please note that this patch series's usage of stat()/fstat() causes
breakages under cygwin, pointed out by Ramsay Jones. He has
graciously offered to work on this issue.
The last patch is still optional--it avoids a little bit of work when
rewriting the packed-refs file, but relies on the stat-based freshness
check not giving a false negative.
Jeff King (2):
get_packed_ref_cache: reload packed-refs file when it changes
for_each_ref: load all loose refs before packed refs
Michael Haggerty (10):
repack_without_ref(): split list curation and entry writing
pack_refs(): split creation of packed refs and entry writing
refs: wrap the packed refs cache in a level of indirection
refs: implement simple transactions for the packed-refs file
refs: manage lifetime of packed refs cache via reference counting
do_for_each_entry(): increment the packed refs cache refcount
packed_ref_cache: increment refcount when locked
Extract a struct stat_data from cache_entry
add a stat_validity struct
refs: do not invalidate the packed-refs cache unnecessarily
builtin/clone.c | 7 +-
builtin/ls-files.c | 12 +-
cache.h | 60 ++++++++--
read-cache.c | 181 ++++++++++++++++++------------
refs.c | 314 ++++++++++++++++++++++++++++++++++++++++++++---------
refs.h | 27 ++++-
6 files changed, 469 insertions(+), 132 deletions(-)
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html