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:
@ -114,7 +114,7 @@ struct name_ref_data {
|
||||
|
||||
static struct tip_table {
|
||||
struct tip_table_entry {
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
const char *refname;
|
||||
} *table;
|
||||
int nr;
|
||||
@ -122,13 +122,13 @@ static struct tip_table {
|
||||
int sorted;
|
||||
} tip_table;
|
||||
|
||||
static void add_to_tip_table(const unsigned char *sha1, const char *refname,
|
||||
static void add_to_tip_table(const struct object_id *oid, const char *refname,
|
||||
int shorten_unambiguous)
|
||||
{
|
||||
refname = name_ref_abbrev(refname, shorten_unambiguous);
|
||||
|
||||
ALLOC_GROW(tip_table.table, tip_table.nr + 1, tip_table.alloc);
|
||||
hashcpy(tip_table.table[tip_table.nr].sha1, sha1);
|
||||
oidcpy(&tip_table.table[tip_table.nr].oid, oid);
|
||||
tip_table.table[tip_table.nr].refname = xstrdup(refname);
|
||||
tip_table.nr++;
|
||||
tip_table.sorted = 0;
|
||||
@ -137,12 +137,12 @@ static void add_to_tip_table(const unsigned char *sha1, const char *refname,
|
||||
static int tipcmp(const void *a_, const void *b_)
|
||||
{
|
||||
const struct tip_table_entry *a = a_, *b = b_;
|
||||
return hashcmp(a->sha1, b->sha1);
|
||||
return oidcmp(&a->oid, &b->oid);
|
||||
}
|
||||
|
||||
static int name_ref(const char *path, const struct object_id *oid, int flags, void *cb_data)
|
||||
{
|
||||
struct object *o = parse_object(oid->hash);
|
||||
struct object *o = parse_object(oid);
|
||||
struct name_ref_data *data = cb_data;
|
||||
int can_abbreviate_output = data->tags_only && data->name_only;
|
||||
int deref = 0;
|
||||
@ -194,13 +194,13 @@ static int name_ref(const char *path, const struct object_id *oid, int flags, vo
|
||||
return 0;
|
||||
}
|
||||
|
||||
add_to_tip_table(oid->hash, path, can_abbreviate_output);
|
||||
add_to_tip_table(oid, path, can_abbreviate_output);
|
||||
|
||||
while (o && o->type == OBJ_TAG) {
|
||||
struct tag *t = (struct tag *) o;
|
||||
if (!t->tagged)
|
||||
break; /* broken repository */
|
||||
o = parse_object(t->tagged->oid.hash);
|
||||
o = parse_object(&t->tagged->oid);
|
||||
deref = 1;
|
||||
taggerdate = t->date;
|
||||
}
|
||||
@ -216,7 +216,7 @@ static int name_ref(const char *path, const struct object_id *oid, int flags, vo
|
||||
static const unsigned char *nth_tip_table_ent(size_t ix, void *table_)
|
||||
{
|
||||
struct tip_table_entry *table = table_;
|
||||
return table[ix].sha1;
|
||||
return table[ix].oid.hash;
|
||||
}
|
||||
|
||||
static const char *get_exact_ref_match(const struct object *o)
|
||||
@ -301,9 +301,9 @@ static void name_rev_line(char *p, struct name_ref_data *data)
|
||||
#define ishex(x) (isdigit((x)) || ((x) >= 'a' && (x) <= 'f'))
|
||||
if (!ishex(*p))
|
||||
forty = 0;
|
||||
else if (++forty == 40 &&
|
||||
else if (++forty == GIT_SHA1_HEXSZ &&
|
||||
!ishex(*(p+1))) {
|
||||
unsigned char sha1[40];
|
||||
struct object_id oid;
|
||||
const char *name = NULL;
|
||||
char c = *(p+1);
|
||||
int p_len = p - p_start + 1;
|
||||
@ -311,9 +311,9 @@ static void name_rev_line(char *p, struct name_ref_data *data)
|
||||
forty = 0;
|
||||
|
||||
*(p+1) = 0;
|
||||
if (!get_sha1(p - 39, sha1)) {
|
||||
if (!get_oid(p - (GIT_SHA1_HEXSZ - 1), &oid)) {
|
||||
struct object *o =
|
||||
lookup_object(sha1);
|
||||
lookup_object(oid.hash);
|
||||
if (o)
|
||||
name = get_rev_name(o, &buf);
|
||||
}
|
||||
@ -323,7 +323,7 @@ static void name_rev_line(char *p, struct name_ref_data *data)
|
||||
continue;
|
||||
|
||||
if (data->name_only)
|
||||
printf("%.*s%s", p_len - 40, p_start, name);
|
||||
printf("%.*s%s", p_len - GIT_SHA1_HEXSZ, p_start, name);
|
||||
else
|
||||
printf("%.*s (%s)", p_len, p_start, name);
|
||||
p_start = p + 1;
|
||||
@ -374,18 +374,18 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
|
||||
cutoff = 0;
|
||||
|
||||
for (; argc; argc--, argv++) {
|
||||
unsigned char sha1[20];
|
||||
struct object_id oid;
|
||||
struct object *object;
|
||||
struct commit *commit;
|
||||
|
||||
if (get_sha1(*argv, sha1)) {
|
||||
if (get_oid(*argv, &oid)) {
|
||||
fprintf(stderr, "Could not get sha1 for %s. Skipping.\n",
|
||||
*argv);
|
||||
continue;
|
||||
}
|
||||
|
||||
commit = NULL;
|
||||
object = parse_object(sha1);
|
||||
object = parse_object(&oid);
|
||||
if (object) {
|
||||
struct object *peeled = deref_tag(object, *argv, 0);
|
||||
if (peeled && peeled->type == OBJ_COMMIT)
|
||||
|
||||
Reference in New Issue
Block a user