[PATCH 0/6] Yet another approach to handling empty snapshots
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Jan 24, 2018, 11:14 UTC
- Message-ID
- <cover.1516791909.git.mhagger@alum.mit.edu>
- In-Reply-To
- <cea5e366-dc95-6f41-6373-f8bbef103561@alum.mit.edu>
This patch series fixes the handling of empty packed-refs snapshots (i.e., those with `snapshot->buf` and friends equal to `NULL`), partly by changing `snapshot` to store a pointer to the start of the post-header `packed-refs` content instead of `header_len`. It makes a couple of other improvements as well.
I'm not sure whether I like this approach better than the alternative of always setting `snapshot->buf` to a non-NULL value, by allocating a length-1 bit of RAM if necessary. The latter is less intrusive, though even if that approach is taken, I think patches 01, 02, and 04 from this patch series would be worthwhile improvements.
Michael
Kim Gybels (1): packed_ref_cache: don't use mmap() for small files
Michael Haggerty (5): struct snapshot: store `start` rather than `header_len` create_snapshot(): use `xmemdupz()` rather than a strbuf find_reference_location(): make function safe for empty snapshots packed_ref_iterator_begin(): make optimization more general load_contents(): don't try to mmap an empty file
refs/packed-backend.c | 106 ++++++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 51 deletions(-)
-- 2.14.2