Merge branch 'bc/object-id'
Conversion from uchar[20] to struct object_id continues. * bc/object-id: (53 commits) object: convert parse_object* to take struct object_id tree: convert parse_tree_indirect to struct object_id sequencer: convert do_recursive_merge to struct object_id diff-lib: convert do_diff_cache to struct object_id builtin/ls-tree: convert to struct object_id merge: convert checkout_fast_forward to struct object_id sequencer: convert fast_forward_to to struct object_id builtin/ls-files: convert overlay_tree_on_cache to object_id builtin/read-tree: convert to struct object_id sha1_name: convert internals of peel_onion to object_id upload-pack: convert remaining parse_object callers to object_id revision: convert remaining parse_object callers to object_id revision: rename add_pending_sha1 to add_pending_oid http-push: convert process_ls_object and descendants to object_id refs/files-backend: convert many internals to struct object_id refs: convert struct ref_update to use struct object_id ref-filter: convert some static functions to struct object_id Convert struct ref_array_item to struct object_id Convert the verify_pack callback to struct object_id Convert lookup_tag to struct object_id ...
This commit is contained in:
76
revision.c
76
revision.c
@ -59,10 +59,10 @@ static void mark_tree_contents_uninteresting(struct tree *tree)
|
||||
while (tree_entry(&desc, &entry)) {
|
||||
switch (object_type(entry.mode)) {
|
||||
case OBJ_TREE:
|
||||
mark_tree_uninteresting(lookup_tree(entry.oid->hash));
|
||||
mark_tree_uninteresting(lookup_tree(entry.oid));
|
||||
break;
|
||||
case OBJ_BLOB:
|
||||
mark_blob_uninteresting(lookup_blob(entry.oid->hash));
|
||||
mark_blob_uninteresting(lookup_blob(entry.oid));
|
||||
break;
|
||||
default:
|
||||
/* Subproject commit - not in this repository */
|
||||
@ -177,23 +177,23 @@ void add_pending_object(struct rev_info *revs,
|
||||
|
||||
void add_head_to_pending(struct rev_info *revs)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
struct object *obj;
|
||||
if (get_sha1("HEAD", sha1))
|
||||
if (get_oid("HEAD", &oid))
|
||||
return;
|
||||
obj = parse_object(sha1);
|
||||
obj = parse_object(&oid);
|
||||
if (!obj)
|
||||
return;
|
||||
add_pending_object(revs, obj, "HEAD");
|
||||
}
|
||||
|
||||
static struct object *get_reference(struct rev_info *revs, const char *name,
|
||||
const unsigned char *sha1,
|
||||
const struct object_id *oid,
|
||||
unsigned int flags)
|
||||
{
|
||||
struct object *object;
|
||||
|
||||
object = parse_object(sha1);
|
||||
object = parse_object(oid);
|
||||
if (!object) {
|
||||
if (revs->ignore_missing)
|
||||
return object;
|
||||
@ -203,10 +203,10 @@ static struct object *get_reference(struct rev_info *revs, const char *name,
|
||||
return object;
|
||||
}
|
||||
|
||||
void add_pending_sha1(struct rev_info *revs, const char *name,
|
||||
const unsigned char *sha1, unsigned int flags)
|
||||
void add_pending_oid(struct rev_info *revs, const char *name,
|
||||
const struct object_id *oid, unsigned int flags)
|
||||
{
|
||||
struct object *object = get_reference(revs, name, sha1, flags);
|
||||
struct object *object = get_reference(revs, name, oid, flags);
|
||||
add_pending_object(revs, object, name);
|
||||
}
|
||||
|
||||
@ -228,7 +228,7 @@ static struct commit *handle_commit(struct rev_info *revs,
|
||||
add_pending_object(revs, object, tag->tag);
|
||||
if (!tag->tagged)
|
||||
die("bad tag");
|
||||
object = parse_object(tag->tagged->oid.hash);
|
||||
object = parse_object(&tag->tagged->oid);
|
||||
if (!object) {
|
||||
if (flags & UNINTERESTING)
|
||||
return NULL;
|
||||
@ -1157,9 +1157,9 @@ static int handle_one_ref(const char *path, const struct object_id *oid,
|
||||
if (ref_excluded(cb->all_revs->ref_excludes, path))
|
||||
return 0;
|
||||
|
||||
object = get_reference(cb->all_revs, path, oid->hash, cb->all_flags);
|
||||
object = get_reference(cb->all_revs, path, oid, cb->all_flags);
|
||||
add_rev_cmdline(cb->all_revs, object, path, REV_CMD_REF, cb->all_flags);
|
||||
add_pending_sha1(cb->all_revs, path, oid->hash, cb->all_flags);
|
||||
add_pending_oid(cb->all_revs, path, oid, cb->all_flags);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1200,7 +1200,7 @@ static void handle_one_reflog_commit(struct object_id *oid, void *cb_data)
|
||||
{
|
||||
struct all_refs_cb *cb = cb_data;
|
||||
if (!is_null_oid(oid)) {
|
||||
struct object *o = parse_object(oid->hash);
|
||||
struct object *o = parse_object(oid);
|
||||
if (o) {
|
||||
o->flags |= cb->all_flags;
|
||||
/* ??? CMDLINEFLAGS ??? */
|
||||
@ -1249,7 +1249,7 @@ static void add_cache_tree(struct cache_tree *it, struct rev_info *revs,
|
||||
int i;
|
||||
|
||||
if (it->entry_count >= 0) {
|
||||
struct tree *tree = lookup_tree(it->sha1);
|
||||
struct tree *tree = lookup_tree(&it->oid);
|
||||
add_pending_object_with_path(revs, &tree->object, "",
|
||||
040000, path->buf);
|
||||
}
|
||||
@ -1275,7 +1275,7 @@ void add_index_objects_to_pending(struct rev_info *revs, unsigned flags)
|
||||
if (S_ISGITLINK(ce->ce_mode))
|
||||
continue;
|
||||
|
||||
blob = lookup_blob(ce->oid.hash);
|
||||
blob = lookup_blob(&ce->oid);
|
||||
if (!blob)
|
||||
die("unable to add index blob to traversal");
|
||||
add_pending_object_with_path(revs, &blob->object, "",
|
||||
@ -1292,7 +1292,7 @@ void add_index_objects_to_pending(struct rev_info *revs, unsigned flags)
|
||||
static int add_parents_only(struct rev_info *revs, const char *arg_, int flags,
|
||||
int exclude_parent)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
struct object *it;
|
||||
struct commit *commit;
|
||||
struct commit_list *parents;
|
||||
@ -1303,17 +1303,17 @@ static int add_parents_only(struct rev_info *revs, const char *arg_, int flags,
|
||||
flags ^= UNINTERESTING | BOTTOM;
|
||||
arg++;
|
||||
}
|
||||
if (get_sha1_committish(arg, sha1))
|
||||
if (get_sha1_committish(arg, oid.hash))
|
||||
return 0;
|
||||
while (1) {
|
||||
it = get_reference(revs, arg, sha1, 0);
|
||||
it = get_reference(revs, arg, &oid, 0);
|
||||
if (!it && revs->ignore_missing)
|
||||
return 0;
|
||||
if (it->type != OBJ_TAG)
|
||||
break;
|
||||
if (!((struct tag*)it)->tagged)
|
||||
return 0;
|
||||
hashcpy(sha1, ((struct tag*)it)->tagged->oid.hash);
|
||||
oidcpy(&oid, &((struct tag*)it)->tagged->oid);
|
||||
}
|
||||
if (it->type != OBJ_COMMIT)
|
||||
return 0;
|
||||
@ -1389,16 +1389,16 @@ static void prepare_show_merge(struct rev_info *revs)
|
||||
{
|
||||
struct commit_list *bases;
|
||||
struct commit *head, *other;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
const char **prune = NULL;
|
||||
int i, prune_num = 1; /* counting terminating NULL */
|
||||
|
||||
if (get_sha1("HEAD", sha1))
|
||||
if (get_oid("HEAD", &oid))
|
||||
die("--merge without HEAD?");
|
||||
head = lookup_commit_or_die(sha1, "HEAD");
|
||||
if (get_sha1("MERGE_HEAD", sha1))
|
||||
head = lookup_commit_or_die(&oid, "HEAD");
|
||||
if (get_oid("MERGE_HEAD", &oid))
|
||||
die("--merge without MERGE_HEAD?");
|
||||
other = lookup_commit_or_die(sha1, "MERGE_HEAD");
|
||||
other = lookup_commit_or_die(&oid, "MERGE_HEAD");
|
||||
add_pending_object(revs, &head->object, "HEAD");
|
||||
add_pending_object(revs, &other->object, "MERGE_HEAD");
|
||||
bases = get_merge_bases(head, other);
|
||||
@ -1434,7 +1434,7 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
||||
struct object_context oc;
|
||||
char *dotdot;
|
||||
struct object *object;
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
int local_flags;
|
||||
const char *arg = arg_;
|
||||
int cant_be_filename = revarg_opt & REVARG_CANNOT_BE_FILENAME;
|
||||
@ -1444,7 +1444,7 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
||||
|
||||
dotdot = strstr(arg, "..");
|
||||
if (dotdot) {
|
||||
unsigned char from_sha1[20];
|
||||
struct object_id from_oid;
|
||||
const char *next = dotdot + 2;
|
||||
const char *this = arg;
|
||||
int symmetric = *next == '.';
|
||||
@ -1470,8 +1470,8 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (!get_sha1_committish(this, from_sha1) &&
|
||||
!get_sha1_committish(next, sha1)) {
|
||||
if (!get_sha1_committish(this, from_oid.hash) &&
|
||||
!get_sha1_committish(next, oid.hash)) {
|
||||
struct object *a_obj, *b_obj;
|
||||
|
||||
if (!cant_be_filename) {
|
||||
@ -1479,8 +1479,8 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
||||
verify_non_filename(revs->prefix, arg);
|
||||
}
|
||||
|
||||
a_obj = parse_object(from_sha1);
|
||||
b_obj = parse_object(sha1);
|
||||
a_obj = parse_object(&from_oid);
|
||||
b_obj = parse_object(&oid);
|
||||
if (!a_obj || !b_obj) {
|
||||
missing:
|
||||
if (revs->ignore_missing)
|
||||
@ -1500,10 +1500,10 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
||||
|
||||
a = (a_obj->type == OBJ_COMMIT
|
||||
? (struct commit *)a_obj
|
||||
: lookup_commit_reference(a_obj->oid.hash));
|
||||
: lookup_commit_reference(&a_obj->oid));
|
||||
b = (b_obj->type == OBJ_COMMIT
|
||||
? (struct commit *)b_obj
|
||||
: lookup_commit_reference(b_obj->oid.hash));
|
||||
: lookup_commit_reference(&b_obj->oid));
|
||||
if (!a || !b)
|
||||
goto missing;
|
||||
exclude = get_merge_bases(a, b);
|
||||
@ -1568,11 +1568,11 @@ int handle_revision_arg(const char *arg_, struct rev_info *revs, int flags, unsi
|
||||
if (revarg_opt & REVARG_COMMITTISH)
|
||||
get_sha1_flags = GET_SHA1_COMMITTISH;
|
||||
|
||||
if (get_sha1_with_context(arg, get_sha1_flags, sha1, &oc))
|
||||
if (get_sha1_with_context(arg, get_sha1_flags, oid.hash, &oc))
|
||||
return revs->ignore_missing ? 0 : -1;
|
||||
if (!cant_be_filename)
|
||||
verify_non_filename(revs->prefix, arg);
|
||||
object = get_reference(revs, arg, sha1, flags ^ local_flags);
|
||||
object = get_reference(revs, arg, &oid, flags ^ local_flags);
|
||||
add_rev_cmdline(revs, object, arg_, REV_CMD_REV, flags ^ local_flags);
|
||||
add_pending_object_with_mode(revs, object, arg, oc.mode);
|
||||
return 0;
|
||||
@ -2287,12 +2287,12 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
|
||||
if (revs->show_merge)
|
||||
prepare_show_merge(revs);
|
||||
if (revs->def && !revs->pending.nr && !got_rev_arg) {
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
struct object *object;
|
||||
struct object_context oc;
|
||||
if (get_sha1_with_context(revs->def, 0, sha1, &oc))
|
||||
if (get_sha1_with_context(revs->def, 0, oid.hash, &oc))
|
||||
diagnose_missing_default(revs->def);
|
||||
object = get_reference(revs, revs->def, sha1, 0);
|
||||
object = get_reference(revs, revs->def, &oid, 0);
|
||||
add_pending_object_with_mode(revs, object, revs->def, oc.mode);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user