Merge branch 'bc/cocci'

Conversion from unsigned char sha1[20] to struct object_id
continues.

* bc/cocci:
  diff: convert prep_temp_blob() to struct object_id
  merge-recursive: convert merge_recursive_generic() to object_id
  merge-recursive: convert leaf functions to use struct object_id
  merge-recursive: convert struct merge_file_info to object_id
  merge-recursive: convert struct stage_data to use object_id
  diff: rename struct diff_filespec's sha1_valid member
  diff: convert struct diff_filespec to struct object_id
  coccinelle: apply object_id Coccinelle transformations
  coccinelle: convert hashcpy() with null_sha1 to hashclr()
  contrib/coccinelle: add basic Coccinelle transforms
  hex: add oid_to_hex_r()
This commit is contained in:
Junio C Hamano
2016-07-19 13:22:16 -07:00
25 changed files with 403 additions and 283 deletions

View File

@ -41,14 +41,14 @@ static int verify_notes_filepair(struct diff_filepair *p, unsigned char *sha1)
switch (p->status) {
case DIFF_STATUS_MODIFIED:
assert(p->one->mode == p->two->mode);
assert(!is_null_sha1(p->one->sha1));
assert(!is_null_sha1(p->two->sha1));
assert(!is_null_oid(&p->one->oid));
assert(!is_null_oid(&p->two->oid));
break;
case DIFF_STATUS_ADDED:
assert(is_null_sha1(p->one->sha1));
assert(is_null_oid(&p->one->oid));
break;
case DIFF_STATUS_DELETED:
assert(is_null_sha1(p->two->sha1));
assert(is_null_oid(&p->two->oid));
break;
default:
return -1;
@ -142,27 +142,27 @@ static struct notes_merge_pair *diff_tree_remote(struct notes_merge_options *o,
if (verify_notes_filepair(p, obj)) {
trace_printf("\t\tCannot merge entry '%s' (%c): "
"%.7s -> %.7s. Skipping!\n", p->one->path,
p->status, sha1_to_hex(p->one->sha1),
sha1_to_hex(p->two->sha1));
p->status, oid_to_hex(&p->one->oid),
oid_to_hex(&p->two->oid));
continue;
}
mp = find_notes_merge_pair_pos(changes, len, obj, 1, &occupied);
if (occupied) {
/* We've found an addition/deletion pair */
assert(!hashcmp(mp->obj, obj));
if (is_null_sha1(p->one->sha1)) { /* addition */
if (is_null_oid(&p->one->oid)) { /* addition */
assert(is_null_sha1(mp->remote));
hashcpy(mp->remote, p->two->sha1);
} else if (is_null_sha1(p->two->sha1)) { /* deletion */
hashcpy(mp->remote, p->two->oid.hash);
} else if (is_null_oid(&p->two->oid)) { /* deletion */
assert(is_null_sha1(mp->base));
hashcpy(mp->base, p->one->sha1);
hashcpy(mp->base, p->one->oid.hash);
} else
assert(!"Invalid existing change recorded");
} else {
hashcpy(mp->obj, obj);
hashcpy(mp->base, p->one->sha1);
hashcpy(mp->base, p->one->oid.hash);
hashcpy(mp->local, uninitialized);
hashcpy(mp->remote, p->two->sha1);
hashcpy(mp->remote, p->two->oid.hash);
len++;
}
trace_printf("\t\tStored remote change for %s: %.7s -> %.7s\n",
@ -203,21 +203,21 @@ static void diff_tree_local(struct notes_merge_options *o,
if (verify_notes_filepair(p, obj)) {
trace_printf("\t\tCannot merge entry '%s' (%c): "
"%.7s -> %.7s. Skipping!\n", p->one->path,
p->status, sha1_to_hex(p->one->sha1),
sha1_to_hex(p->two->sha1));
p->status, oid_to_hex(&p->one->oid),
oid_to_hex(&p->two->oid));
continue;
}
mp = find_notes_merge_pair_pos(changes, len, obj, 0, &match);
if (!match) {
trace_printf("\t\tIgnoring local-only change for %s: "
"%.7s -> %.7s\n", sha1_to_hex(obj),
sha1_to_hex(p->one->sha1),
sha1_to_hex(p->two->sha1));
oid_to_hex(&p->one->oid),
oid_to_hex(&p->two->oid));
continue;
}
assert(!hashcmp(mp->obj, obj));
if (is_null_sha1(p->two->sha1)) { /* deletion */
if (is_null_oid(&p->two->oid)) { /* deletion */
/*
* Either this is a true deletion (1), or it is part
* of an A/D pair (2), or D/A pair (3):
@ -229,7 +229,7 @@ static void diff_tree_local(struct notes_merge_options *o,
*/
if (!hashcmp(mp->local, uninitialized))
hashclr(mp->local);
} else if (is_null_sha1(p->one->sha1)) { /* addition */
} else if (is_null_oid(&p->one->oid)) { /* addition */
/*
* Either this is a true addition (1), or it is part
* of an A/D pair (2), or D/A pair (3):
@ -240,16 +240,16 @@ static void diff_tree_local(struct notes_merge_options *o,
*/
assert(is_null_sha1(mp->local) ||
!hashcmp(mp->local, uninitialized));
hashcpy(mp->local, p->two->sha1);
hashcpy(mp->local, p->two->oid.hash);
} else { /* modification */
/*
* This is a true modification. p->one->sha1 shall
* match mp->base, and mp->local shall be uninitialized.
* Set mp->local to p->two->sha1.
*/
assert(!hashcmp(p->one->sha1, mp->base));
assert(!hashcmp(p->one->oid.hash, mp->base));
assert(!hashcmp(mp->local, uninitialized));
hashcpy(mp->local, p->two->sha1);
hashcpy(mp->local, p->two->oid.hash);
}
trace_printf("\t\tStored local change for %s: %.7s -> %.7s\n",
sha1_to_hex(mp->obj), sha1_to_hex(mp->base),