diff: convert struct diff_filespec to struct object_id
Convert struct diff_filespec's sha1 member to use a struct object_id called "oid" instead. The following Coccinelle semantic patch was used to implement this, followed by the transformations in object_id.cocci: @@ struct diff_filespec o; @@ - o.sha1 + o.oid.hash @@ struct diff_filespec *p; @@ - p->sha1 + p->oid.hash Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
c368dde924
commit
a0d12c4433
@ -599,7 +599,7 @@ static struct origin *find_origin(struct scoreboard *sb,
|
||||
p->status);
|
||||
case 'M':
|
||||
porigin = get_origin(sb, parent, origin->path);
|
||||
hashcpy(porigin->blob_sha1, p->one->sha1);
|
||||
hashcpy(porigin->blob_sha1, p->one->oid.hash);
|
||||
porigin->mode = p->one->mode;
|
||||
break;
|
||||
case 'A':
|
||||
@ -645,7 +645,7 @@ static struct origin *find_rename(struct scoreboard *sb,
|
||||
if ((p->status == 'R' || p->status == 'C') &&
|
||||
!strcmp(p->two->path, origin->path)) {
|
||||
porigin = get_origin(sb, parent, p->one->path);
|
||||
hashcpy(porigin->blob_sha1, p->one->sha1);
|
||||
hashcpy(porigin->blob_sha1, p->one->oid.hash);
|
||||
porigin->mode = p->one->mode;
|
||||
break;
|
||||
}
|
||||
@ -1309,7 +1309,7 @@ static void find_copy_in_parent(struct scoreboard *sb,
|
||||
continue;
|
||||
|
||||
norigin = get_origin(sb, parent, p->one->path);
|
||||
hashcpy(norigin->blob_sha1, p->one->sha1);
|
||||
hashcpy(norigin->blob_sha1, p->one->oid.hash);
|
||||
norigin->mode = p->one->mode;
|
||||
fill_origin_blob(&sb->revs->diffopt, norigin, &file_p);
|
||||
if (!file_p.ptr)
|
||||
|
@ -368,7 +368,7 @@ static void show_filemodify(struct diff_queue_struct *q,
|
||||
print_path(spec->path);
|
||||
putchar('\n');
|
||||
|
||||
if (!hashcmp(ospec->sha1, spec->sha1) &&
|
||||
if (!oidcmp(&ospec->oid, &spec->oid) &&
|
||||
ospec->mode == spec->mode)
|
||||
break;
|
||||
/* fallthrough */
|
||||
@ -383,10 +383,10 @@ static void show_filemodify(struct diff_queue_struct *q,
|
||||
if (no_data || S_ISGITLINK(spec->mode))
|
||||
printf("M %06o %s ", spec->mode,
|
||||
sha1_to_hex(anonymize ?
|
||||
anonymize_sha1(spec->sha1) :
|
||||
spec->sha1));
|
||||
anonymize_sha1(spec->oid.hash) :
|
||||
spec->oid.hash));
|
||||
else {
|
||||
struct object *object = lookup_object(spec->sha1);
|
||||
struct object *object = lookup_object(spec->oid.hash);
|
||||
printf("M %06o :%d ", spec->mode,
|
||||
get_object_mark(object));
|
||||
}
|
||||
@ -572,7 +572,7 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
|
||||
/* Export the referenced blobs, and remember the marks. */
|
||||
for (i = 0; i < diff_queued_diff.nr; i++)
|
||||
if (!S_ISGITLINK(diff_queued_diff.queue[i]->two->mode))
|
||||
export_blob(diff_queued_diff.queue[i]->two->sha1);
|
||||
export_blob(diff_queued_diff.queue[i]->two->oid.hash);
|
||||
|
||||
refname = commit->util;
|
||||
if (anonymize) {
|
||||
|
@ -121,7 +121,7 @@ static void update_index_from_diff(struct diff_queue_struct *q,
|
||||
|
||||
for (i = 0; i < q->nr; i++) {
|
||||
struct diff_filespec *one = q->queue[i]->one;
|
||||
int is_missing = !(one->mode && !is_null_sha1(one->sha1));
|
||||
int is_missing = !(one->mode && !is_null_oid(&one->oid));
|
||||
struct cache_entry *ce;
|
||||
|
||||
if (is_missing && !intent_to_add) {
|
||||
@ -129,7 +129,7 @@ static void update_index_from_diff(struct diff_queue_struct *q,
|
||||
continue;
|
||||
}
|
||||
|
||||
ce = make_cache_entry(one->mode, one->sha1, one->path,
|
||||
ce = make_cache_entry(one->mode, one->oid.hash, one->path,
|
||||
0, 0);
|
||||
if (!ce)
|
||||
die(_("make_cache_entry failed for path '%s'"),
|
||||
|
Reference in New Issue
Block a user