This continues the elimination of global variables in the object store and teaches lookup_commit[_reference] and alike to handle a_repository. This is also available as https://github.com/stefanbeller/git/tree/object-store-lookup-commit or applies on top of 02f70d63027 (Merge branch 'sb/object-store-grafts' into next, 2018-06-28). Picking a base for this one is really hard, as nearly all series currently cooking or in flight collide with it on one or two lines. (lookup_* is used heavily, who would have thought?); I really needed 'sb/object-store-grafts' to build on; and there is only one other series before that in current next, which this series would have conflicted with, if not based on top of it. In "The state of the object store series" [1], this was tentatively named "sb/object-store-lookup". Thanks, Stefan [1] https://public-inbox.org/git/CAGZ79kZtEZA1rvgfSCS+m4dsrB86Cf-XiePWQmeU-kCNxP_NLQ@xxxxxxxxxxxxxx/ v2 https://public-inbox.org/git/20180613230522.55335-1-sbeller@xxxxxxxxxx/ * removed mentions of cooci patches * added forward declaration of commit buffer slabs. * dropped 3 patches that add the repository to lookup_unkonwn_object, parse_commit and parse_commit_gently, but were not converting those functions. We'll convert these in the next series, as this series is growing big already. * This series can be found as branch 'object-store-lookup-commit' on github, it applies on top of nd/commit-util-to-slab merged with sb/object-store-grafts v1, https://public-inbox.org/git/20180530004810.30076-1-sbeller@xxxxxxxxxx/ This applies on the merge of nd/commit-util-to-slab and sb/object-store-grafts, and is available at http://github.com/stefanbeller/ as branch object-store-lookup-commit as the merge has some merge conflicts as well as syntactical conflicts (upload-pack.c and fetch-pack.c introduce new calls of functions that would want to take a repository struct in the object-store-grafts series) As layed out in https://public-inbox.org/git/20180517225154.9200-1-sbeller@xxxxxxxxxx/ this is getting close to finishing the set of object store series though the last unfinished part of this RFC hints at new work on the plate: * To give this series a nice polish, we'd want to convert parse_commit, too. But that requires the conversion of the new commit graph. Maybe we need to split this series into 2. * Once this is in good shape we can talk about converting parts of the revision walking code, * which then can be used by the submodule code as the end goal for the object store series. Thanks, Stefan Stefan Beller (32): object: add repository argument to parse_object object: add repository argument to lookup_object object: add repository argument to parse_object_buffer object: add repository argument to object_as_type blob: add repository argument to lookup_blob tree: add repository argument to lookup_tree commit: add repository argument to lookup_commit_reference_gently commit: add repository argument to lookup_commit_reference commit: add repository argument to lookup_commit commit: add repository argument to parse_commit_buffer commit: add repository argument to set_commit_buffer commit: add repository argument to get_cached_commit_buffer tag: add repository argument to lookup_tag tag: add repository argument to parse_tag_buffer tag: add repository argument to deref_tag object: allow object_as_type to handle arbitrary repositories object: allow lookup_object to handle arbitrary repositories blob: allow lookup_blob to handle arbitrary repositories tree: allow lookup_tree to handle arbitrary repositories commit: allow lookup_commit to handle arbitrary repositories tag: allow lookup_tag to handle arbitrary repositories tag: allow parse_tag_buffer to handle arbitrary repositories commit.c: allow parse_commit_buffer to handle arbitrary repositories commit-slabs: remove realloc counter outside of slab struct commit.c: migrate the commit buffer to the parsed object store commit.c: allow set_commit_buffer to handle arbitrary repositories commit.c: allow get_cached_commit_buffer to handle arbitrary repositories object.c: allow parse_object_buffer to handle arbitrary repositories object.c: allow parse_object to handle arbitrary repositories tag.c: allow deref_tag to handle arbitrary repositories commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories commit.c: allow lookup_commit_reference to handle arbitrary repositories archive.c | 2 +- bisect.c | 2 +- blame.c | 13 ++++--- blob.c | 10 ++--- blob.h | 2 +- branch.c | 2 +- builtin/am.c | 9 +++-- builtin/branch.c | 7 ++-- builtin/checkout.c | 6 +-- builtin/clone.c | 3 +- builtin/commit-tree.c | 4 +- builtin/describe.c | 13 ++++--- builtin/diff-tree.c | 9 +++-- builtin/diff.c | 7 ++-- builtin/fast-export.c | 14 ++++--- builtin/fetch.c | 9 +++-- builtin/fmt-merge-msg.c | 9 +++-- builtin/fsck.c | 21 +++++++---- builtin/grep.c | 3 +- builtin/index-pack.c | 5 ++- builtin/log.c | 10 +++-- builtin/merge-base.c | 7 ++-- builtin/merge-tree.c | 3 +- builtin/name-rev.c | 13 ++++--- builtin/notes.c | 3 +- builtin/pack-objects.c | 2 +- builtin/prune.c | 2 +- builtin/pull.c | 15 +++++--- builtin/receive-pack.c | 6 +-- builtin/reflog.c | 15 +++++--- builtin/replace.c | 8 ++-- builtin/reset.c | 4 +- builtin/rev-list.c | 2 +- builtin/rev-parse.c | 6 +-- builtin/show-branch.c | 5 ++- builtin/tag.c | 2 +- builtin/unpack-objects.c | 7 ++-- builtin/verify-commit.c | 4 +- bundle.c | 10 +++-- cache-tree.c | 3 +- commit-graph.c | 14 +++---- commit-slab-impl.h | 3 -- commit.c | 80 +++++++++++++++++++++++++--------------- commit.h | 18 ++++++--- fast-import.c | 6 ++- fetch-pack.c | 39 ++++++++++++-------- fsck.c | 9 +++-- http-backend.c | 4 +- http-push.c | 16 +++++--- line-log.c | 2 +- list-objects.c | 4 +- log-tree.c | 13 ++++--- merge-recursive.c | 17 +++++---- notes-cache.c | 3 +- notes-merge.c | 5 ++- notes-utils.c | 4 +- object.c | 61 ++++++++++++++++-------------- object.h | 12 ++++-- packfile.c | 2 +- parse-options-cb.c | 2 +- pretty.c | 4 +- reachable.c | 8 ++-- ref-filter.c | 12 ++++-- reflog-walk.c | 3 +- refs.c | 2 +- refs/files-backend.c | 2 +- remote.c | 19 ++++++---- revision.c | 26 ++++++------- sequencer.c | 14 +++---- server-info.c | 4 +- sha1-file.c | 4 +- sha1-name.c | 33 +++++++++-------- shallow.c | 30 +++++++++------ submodule.c | 4 +- tag.c | 28 +++++++------- tag.h | 7 ++-- tree.c | 19 +++++----- tree.h | 2 +- upload-pack.c | 17 +++++---- walker.c | 12 ++++-- wt-status.c | 2 +- 81 files changed, 485 insertions(+), 358 deletions(-) -- 2.18.0.399.gad0ab374a1-goog