diff options
| author | Junio C Hamano <gitster@pobox.com> | 2018-08-02 15:30:42 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2018-08-02 15:30:42 -0700 |
| commit | 3a2a1dc17077a27ad1a89db27cb1b4b374f3b0ff (patch) | |
| tree | 7cd70df6ba2e915e629a1138373a5c878cd0db45 /walker.c | |
| parent | Merge branch 'is/parsing-line-range' (diff) | |
| parent | commit.c: allow lookup_commit_reference to handle arbitrary repositories (diff) | |
| download | git-3a2a1dc17077a27ad1a89db27cb1b4b374f3b0ff.tar.gz git-3a2a1dc17077a27ad1a89db27cb1b4b374f3b0ff.zip | |
Merge branch 'sb/object-store-lookup'
lookup_commit_reference() and friends have been updated to find
in-core object for a specific in-core repository instance.
* sb/object-store-lookup: (32 commits)
commit.c: allow lookup_commit_reference to handle arbitrary repositories
commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories
tag.c: allow deref_tag to handle arbitrary repositories
object.c: allow parse_object to handle arbitrary repositories
object.c: allow parse_object_buffer to handle arbitrary repositories
commit.c: allow get_cached_commit_buffer to handle arbitrary repositories
commit.c: allow set_commit_buffer to handle arbitrary repositories
commit.c: migrate the commit buffer to the parsed object store
commit-slabs: remove realloc counter outside of slab struct
commit.c: allow parse_commit_buffer to handle arbitrary repositories
tag: allow parse_tag_buffer to handle arbitrary repositories
tag: allow lookup_tag to handle arbitrary repositories
commit: allow lookup_commit to handle arbitrary repositories
tree: allow lookup_tree to handle arbitrary repositories
blob: allow lookup_blob to handle arbitrary repositories
object: allow lookup_object to handle arbitrary repositories
object: allow object_as_type to handle arbitrary repositories
tag: add repository argument to deref_tag
tag: add repository argument to parse_tag_buffer
tag: add repository argument to lookup_tag
...
Diffstat (limited to 'walker.c')
| -rw-r--r-- | walker.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -1,5 +1,6 @@ #include "cache.h" #include "walker.h" +#include "repository.h" #include "object-store.h" #include "commit.h" #include "tree.h" @@ -48,12 +49,14 @@ static int process_tree(struct walker *walker, struct tree *tree) if (S_ISGITLINK(entry.mode)) continue; if (S_ISDIR(entry.mode)) { - struct tree *tree = lookup_tree(entry.oid); + struct tree *tree = lookup_tree(the_repository, + entry.oid); if (tree) obj = &tree->object; } else { - struct blob *blob = lookup_blob(entry.oid); + struct blob *blob = lookup_blob(the_repository, + entry.oid); if (blob) obj = &blob->object; } @@ -178,7 +181,7 @@ static int loop(struct walker *walker) } } if (!obj->type) - parse_object(&obj->oid); + parse_object(the_repository, &obj->oid); if (process_object(walker, obj)) return -1; } @@ -204,7 +207,8 @@ static int interpret_target(struct walker *walker, char *target, struct object_i static int mark_complete(const char *path, const struct object_id *oid, int flag, void *cb_data) { - struct commit *commit = lookup_commit_reference_gently(oid, 1); + struct commit *commit = lookup_commit_reference_gently(the_repository, + oid, 1); if (commit) { commit->object.flags |= COMPLETE; |
