@ -16,13 +16,13 @@
@@ -16,13 +16,13 @@
*
* Returns 0 if everything is connected, non-zero otherwise.
*/
int check_connected(sha1_iterate_fn fn, void *cb_data,
int check_connected(oid_iterate_fn fn, void *cb_data,
struct check_connected_options *opt)
{
struct child_process rev_list = CHILD_PROCESS_INIT;
struct check_connected_options defaults = CHECK_CONNECTED_INIT;
char commit[41];
unsigned char sha1[20];
char commit[GIT_MAX_HEXSZ + 1];
struct object_id oid;
int err = 0;
struct packed_git *new_pack = NULL;
struct transport *transport;
@ -32,7 +32,7 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
@@ -32,7 +32,7 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
opt = &defaults;
transport = opt->transport;
if (fn(cb_data, sha1)) {
if (fn(cb_data, &oid)) {
if (opt->err_fd)
close(opt->err_fd);
return err;
@ -77,7 +77,7 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
@@ -77,7 +77,7 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
sigchain_push(SIGPIPE, SIG_IGN);
commit[40] = '\n';
commit[GIT_SHA1_HEXSZ] = '\n';
do {
/*
* If index-pack already checked that:
@ -87,17 +87,17 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
@@ -87,17 +87,17 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
* are sure the ref is good and not sending it to
* rev-list for verification.
*/
if (new_pack && find_pack_entry_one(sha1, new_pack))
if (new_pack && find_pack_entry_one(oid.hash, new_pack))
continue;
memcpy(commit, sha1_to_hex(sha1), 40);
if (write_in_full(rev_list.in, commit, 41) < 0) {
memcpy(commit, oid_to_hex(&oid), GIT_SHA1_HEXSZ);
if (write_in_full(rev_list.in, commit, GIT_SHA1_HEXSZ + 1) < 0) {
if (errno != EPIPE && errno != EINVAL)
error_errno(_("failed write to rev-list"));
err = -1;
break;
}
} while (!fn(cb_data, sha1));
} while (!fn(cb_data, &oid));
if (close(rev_list.in))
err = error_errno(_("failed to close rev-list's stdin"));