packed_ref_store: make class into a subclass of ref_store

Add the infrastructure to make `packed_ref_store` implement
`ref_store`, at least formally (few of the methods are actually
implemented yet). Change the functions in its interface to take
`ref_store *` arguments. Change `files_ref_store` to store a pointer
to `ref_store *` and to call functions via the virtual `ref_store`
interface where possible. This also means that a few
`packed_ref_store` functions can become static.

This is a work in progress. Some more `ref_store` methods will soon be
implemented (e.g., those having to do with reference transactions).
But some of them will never be implemented (e.g., those having to do
with symrefs or reflogs).

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty
2017-06-23 09:01:38 +02:00
committed by Junio C Hamano
parent 67be7c5a59
commit e0cc8ac820
4 changed files with 227 additions and 45 deletions

View File

@ -664,6 +664,7 @@ struct ref_storage_be {
};
extern struct ref_storage_be refs_be_files;
extern struct ref_storage_be refs_be_packed;
/*
* A representation of the reference store for the main repository or