mirror of
https://github.com/git/git
synced 2024-11-05 18:59:29 +00:00
blob: add repository argument to lookup_blob
Add a repository argument to allow the callers of lookup_blob to be more specific about which repository to act on. This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet. As with the previous commits, use a macro to catch callers passing a repository other than the_repository at compile time. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1268dfac1e
commit
da14a7ff99
15 changed files with 23 additions and 18 deletions
2
blob.c
2
blob.c
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
const char *blob_type = "blob";
|
const char *blob_type = "blob";
|
||||||
|
|
||||||
struct blob *lookup_blob(const struct object_id *oid)
|
struct blob *lookup_blob_the_repository(const struct object_id *oid)
|
||||||
{
|
{
|
||||||
struct object *obj = lookup_object(the_repository, oid->hash);
|
struct object *obj = lookup_object(the_repository, oid->hash);
|
||||||
if (!obj)
|
if (!obj)
|
||||||
|
|
3
blob.h
3
blob.h
|
@ -9,7 +9,8 @@ struct blob {
|
||||||
struct object object;
|
struct object object;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct blob *lookup_blob(const struct object_id *oid);
|
#define lookup_blob(r, o) lookup_blob_##r(o)
|
||||||
|
struct blob *lookup_blob_the_repository(const struct object_id *oid);
|
||||||
|
|
||||||
int parse_blob_buffer(struct blob *item, void *buffer, unsigned long size);
|
int parse_blob_buffer(struct blob *item, void *buffer, unsigned long size);
|
||||||
|
|
||||||
|
|
|
@ -236,7 +236,7 @@ static void export_blob(const struct object_id *oid)
|
||||||
|
|
||||||
if (anonymize) {
|
if (anonymize) {
|
||||||
buf = anonymize_blob(&size);
|
buf = anonymize_blob(&size);
|
||||||
object = (struct object *)lookup_blob(oid);
|
object = (struct object *)lookup_blob(the_repository, oid);
|
||||||
eaten = 0;
|
eaten = 0;
|
||||||
} else {
|
} else {
|
||||||
buf = read_object_file(oid, &type, &size);
|
buf = read_object_file(oid, &type, &size);
|
||||||
|
|
|
@ -810,7 +810,8 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
|
||||||
mode = active_cache[i]->ce_mode;
|
mode = active_cache[i]->ce_mode;
|
||||||
if (S_ISGITLINK(mode))
|
if (S_ISGITLINK(mode))
|
||||||
continue;
|
continue;
|
||||||
blob = lookup_blob(&active_cache[i]->oid);
|
blob = lookup_blob(the_repository,
|
||||||
|
&active_cache[i]->oid);
|
||||||
if (!blob)
|
if (!blob)
|
||||||
continue;
|
continue;
|
||||||
obj = &blob->object;
|
obj = &blob->object;
|
||||||
|
|
|
@ -832,7 +832,7 @@ static void sha1_object(const void *data, struct object_entry *obj_entry,
|
||||||
if (strict || do_fsck_object) {
|
if (strict || do_fsck_object) {
|
||||||
read_lock();
|
read_lock();
|
||||||
if (type == OBJ_BLOB) {
|
if (type == OBJ_BLOB) {
|
||||||
struct blob *blob = lookup_blob(oid);
|
struct blob *blob = lookup_blob(the_repository, oid);
|
||||||
if (blob)
|
if (blob)
|
||||||
blob->object.flags |= FLAG_CHECKED;
|
blob->object.flags |= FLAG_CHECKED;
|
||||||
else
|
else
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "tree-walk.h"
|
#include "tree-walk.h"
|
||||||
#include "xdiff-interface.h"
|
#include "xdiff-interface.h"
|
||||||
#include "object-store.h"
|
#include "object-store.h"
|
||||||
|
#include "repository.h"
|
||||||
#include "blob.h"
|
#include "blob.h"
|
||||||
#include "exec-cmd.h"
|
#include "exec-cmd.h"
|
||||||
#include "merge-blobs.h"
|
#include "merge-blobs.h"
|
||||||
|
@ -170,7 +171,7 @@ static struct merge_list *create_entry(unsigned stage, unsigned mode, const stru
|
||||||
res->stage = stage;
|
res->stage = stage;
|
||||||
res->path = path;
|
res->path = path;
|
||||||
res->mode = mode;
|
res->mode = mode;
|
||||||
res->blob = lookup_blob(oid);
|
res->blob = lookup_blob(the_repository, oid);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -254,7 +254,7 @@ static void write_object(unsigned nr, enum object_type type,
|
||||||
added_object(nr, type, buf, size);
|
added_object(nr, type, buf, size);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
blob = lookup_blob(&obj_list[nr].oid);
|
blob = lookup_blob(the_repository, &obj_list[nr].oid);
|
||||||
if (blob)
|
if (blob)
|
||||||
blob->object.flags |= FLAG_WRITTEN;
|
blob->object.flags |= FLAG_WRITTEN;
|
||||||
else
|
else
|
||||||
|
|
4
fsck.c
4
fsck.c
|
@ -414,7 +414,7 @@ static int fsck_walk_tree(struct tree *tree, void *data, struct fsck_options *op
|
||||||
result = options->walk(obj, OBJ_TREE, data, options);
|
result = options->walk(obj, OBJ_TREE, data, options);
|
||||||
}
|
}
|
||||||
else if (S_ISREG(entry.mode) || S_ISLNK(entry.mode)) {
|
else if (S_ISREG(entry.mode) || S_ISLNK(entry.mode)) {
|
||||||
obj = (struct object *)lookup_blob(entry.oid);
|
obj = (struct object *)lookup_blob(the_repository, entry.oid);
|
||||||
if (name && obj)
|
if (name && obj)
|
||||||
put_object_name(options, obj, "%s%s", name,
|
put_object_name(options, obj, "%s%s", name,
|
||||||
entry.path);
|
entry.path);
|
||||||
|
@ -1070,7 +1070,7 @@ int fsck_finish(struct fsck_options *options)
|
||||||
if (oidset_contains(&gitmodules_done, oid))
|
if (oidset_contains(&gitmodules_done, oid))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
blob = lookup_blob(oid);
|
blob = lookup_blob(the_repository, oid);
|
||||||
if (!blob) {
|
if (!blob) {
|
||||||
struct object *obj = lookup_unknown_object(oid->hash);
|
struct object *obj = lookup_unknown_object(oid->hash);
|
||||||
ret |= report(options, obj,
|
ret |= report(options, obj,
|
||||||
|
|
|
@ -1314,7 +1314,8 @@ static struct object_list **process_tree(struct tree *tree,
|
||||||
p = process_tree(lookup_tree(entry.oid), p);
|
p = process_tree(lookup_tree(entry.oid), p);
|
||||||
break;
|
break;
|
||||||
case OBJ_BLOB:
|
case OBJ_BLOB:
|
||||||
p = process_blob(lookup_blob(entry.oid), p);
|
p = process_blob(lookup_blob(the_repository, entry.oid),
|
||||||
|
p);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Subproject commit - not in this repository */
|
/* Subproject commit - not in this repository */
|
||||||
|
|
|
@ -167,7 +167,7 @@ static void process_tree(struct rev_info *revs,
|
||||||
cb_data);
|
cb_data);
|
||||||
else
|
else
|
||||||
process_blob(revs,
|
process_blob(revs,
|
||||||
lookup_blob(entry.oid),
|
lookup_blob(the_repository, entry.oid),
|
||||||
show, base, entry.path,
|
show, base, entry.path,
|
||||||
cb_data, filter_fn, filter_data);
|
cb_data, filter_fn, filter_data);
|
||||||
}
|
}
|
||||||
|
|
4
object.c
4
object.c
|
@ -193,7 +193,7 @@ struct object *parse_object_buffer_the_repository(const struct object_id *oid, e
|
||||||
|
|
||||||
obj = NULL;
|
obj = NULL;
|
||||||
if (type == OBJ_BLOB) {
|
if (type == OBJ_BLOB) {
|
||||||
struct blob *blob = lookup_blob(oid);
|
struct blob *blob = lookup_blob(the_repository, oid);
|
||||||
if (blob) {
|
if (blob) {
|
||||||
if (parse_blob_buffer(blob, buffer, size))
|
if (parse_blob_buffer(blob, buffer, size))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -266,7 +266,7 @@ struct object *parse_object_the_repository(const struct object_id *oid)
|
||||||
error("sha1 mismatch %s", oid_to_hex(oid));
|
error("sha1 mismatch %s", oid_to_hex(oid));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
parse_blob_buffer(lookup_blob(oid), NULL, 0);
|
parse_blob_buffer(lookup_blob(the_repository, oid), NULL, 0);
|
||||||
return lookup_object(the_repository, oid->hash);
|
return lookup_object(the_repository, oid->hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ static void add_recent_object(const struct object_id *oid,
|
||||||
obj = (struct object *)lookup_tree(oid);
|
obj = (struct object *)lookup_tree(oid);
|
||||||
break;
|
break;
|
||||||
case OBJ_BLOB:
|
case OBJ_BLOB:
|
||||||
obj = (struct object *)lookup_blob(oid);
|
obj = (struct object *)lookup_blob(the_repository, oid);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
die("unknown object type for %s: %s",
|
die("unknown object type for %s: %s",
|
||||||
|
|
|
@ -66,7 +66,7 @@ static void mark_tree_contents_uninteresting(struct tree *tree)
|
||||||
mark_tree_uninteresting(lookup_tree(entry.oid));
|
mark_tree_uninteresting(lookup_tree(entry.oid));
|
||||||
break;
|
break;
|
||||||
case OBJ_BLOB:
|
case OBJ_BLOB:
|
||||||
mark_blob_uninteresting(lookup_blob(entry.oid));
|
mark_blob_uninteresting(lookup_blob(the_repository, entry.oid));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* Subproject commit - not in this repository */
|
/* Subproject commit - not in this repository */
|
||||||
|
@ -1348,7 +1348,7 @@ static void do_add_index_objects_to_pending(struct rev_info *revs,
|
||||||
if (S_ISGITLINK(ce->ce_mode))
|
if (S_ISGITLINK(ce->ce_mode))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
blob = lookup_blob(&ce->oid);
|
blob = lookup_blob(the_repository, &ce->oid);
|
||||||
if (!blob)
|
if (!blob)
|
||||||
die("unable to add index blob to traversal");
|
die("unable to add index blob to traversal");
|
||||||
add_pending_object_with_path(revs, &blob->object, "",
|
add_pending_object_with_path(revs, &blob->object, "",
|
||||||
|
|
2
tag.c
2
tag.c
|
@ -154,7 +154,7 @@ int parse_tag_buffer(struct tag *item, const void *data, unsigned long size)
|
||||||
bufptr = nl + 1;
|
bufptr = nl + 1;
|
||||||
|
|
||||||
if (!strcmp(type, blob_type)) {
|
if (!strcmp(type, blob_type)) {
|
||||||
item->tagged = (struct object *)lookup_blob(&oid);
|
item->tagged = (struct object *)lookup_blob(the_repository, &oid);
|
||||||
} else if (!strcmp(type, tree_type)) {
|
} else if (!strcmp(type, tree_type)) {
|
||||||
item->tagged = (struct object *)lookup_tree(&oid);
|
item->tagged = (struct object *)lookup_tree(&oid);
|
||||||
} else if (!strcmp(type, commit_type)) {
|
} else if (!strcmp(type, commit_type)) {
|
||||||
|
|
3
walker.c
3
walker.c
|
@ -54,7 +54,8 @@ static int process_tree(struct walker *walker, struct tree *tree)
|
||||||
obj = &tree->object;
|
obj = &tree->object;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
struct blob *blob = lookup_blob(entry.oid);
|
struct blob *blob = lookup_blob(the_repository,
|
||||||
|
entry.oid);
|
||||||
if (blob)
|
if (blob)
|
||||||
obj = &blob->object;
|
obj = &blob->object;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue