This applies on top of sb/oid-object-info and is the logical continuum of
the series that it builds on; this brings the object store into more of
Gits code, removing global state, such that reasoning about the state of
the in-memory representation of the repository is easier.
My original plan was to convert lookup_commit_graft as the next series,
which would be similar to lookup_replace_object, as in sb/object-store-replace.
The grafts and shallow mechanism are very close to each other, such that
they need to be converted at the same time, both depending on the
"parsed object store" that is introduced in this commit.
The next series will then convert code in {object/blob/tree/commit/tag}.c
hopefully finishing the lookup_* functions.
I also debated if it is worth converting alloc.c via this patch series
or if it might make more sense to use the new mem-pool by Jameson[1].
I vaguely wonder about the performance impact, as the object allocation
code seemed to be relevant in the past.
[1] https://public-inbox.org/git/[email protected]/
Any comments welcome,
Thanks,
Stefan
Jonathan Nieder (1):
object: add repository argument to grow_object_hash
Stefan Beller (12):
repository: introduce object parser field
object: add repository argument to create_object
alloc: add repository argument to alloc_blob_node
alloc: add repository argument to alloc_tree_node
alloc: add repository argument to alloc_commit_node
alloc: add repository argument to alloc_tag_node
alloc: add repository argument to alloc_object_node
alloc: add repository argument to alloc_report
alloc: add repository argument to alloc_commit_index
object: allow grow_object_hash to handle arbitrary repositories
object: allow create_object to handle arbitrary repositories
alloc: allow arbitrary repositories for alloc functions
alloc.c | 69 +++++++++++++++++++++++------------
alloc.h | 21 +++++++++++
blame.c | 3 +-
blob.c | 5 ++-
cache.h | 9 -----
commit.c | 4 +-
merge-recursive.c | 3 +-
object.c | 93 +++++++++++++++++++++++++++++++++--------------
object.h | 18 ++++++++-
repository.c | 7 ++++
repository.h | 11 +++++-
tag.c | 4 +-
tree.c | 4 +-
13 files changed, 182 insertions(+), 69 deletions(-)
create mode 100644 alloc.h
--
2.17.0.441.gb46fe60e1d-goog