Convert ref_newer and its caller to use struct object_id instead of unsigned char *. Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> --- builtin/remote.c | 2 +- http-push.c | 4 ++-- remote.c | 8 ++++---- remote.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/builtin/remote.c b/builtin/remote.c index fa4d04c..0efc388 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -411,7 +411,7 @@ static int get_push_ref_states(const struct ref *remote_refs, else if (is_null_oid(&ref->old_oid)) info->status = PUSH_STATUS_CREATE; else if (has_object_file(&ref->old_oid) && - ref_newer(ref->new_oid.hash, ref->old_oid.hash)) + ref_newer(&ref->new_oid, &ref->old_oid)) info->status = PUSH_STATUS_FASTFORWARD; else info->status = PUSH_STATUS_OUTOFDATE; diff --git a/http-push.c b/http-push.c index d054fdb..0e688a7 100644 --- a/http-push.c +++ b/http-push.c @@ -1899,8 +1899,8 @@ int main(int argc, char **argv) !is_null_oid(&ref->old_oid) && !ref->force) { if (!has_object_file(&ref->old_oid) || - !ref_newer(ref->peer_ref->new_oid.hash, - ref->old_oid.hash)) { + !ref_newer(&ref->peer_ref->new_oid, + &ref->old_oid)) { /* * We do not have the remote ref, or * we know that the remote ref is not diff --git a/remote.c b/remote.c index 0574120..cb85c3e 100644 --- a/remote.c +++ b/remote.c @@ -1626,7 +1626,7 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror, else if (!lookup_commit_reference_gently(ref->old_oid.hash, 1) || !lookup_commit_reference_gently(ref->new_oid.hash, 1)) reject_reason = REF_STATUS_REJECT_NEEDS_FORCE; - else if (!ref_newer(ref->new_oid.hash, ref->old_oid.hash)) + else if (!ref_newer(&ref->new_oid, &ref->old_oid)) reject_reason = REF_STATUS_REJECT_NONFASTFORWARD; } @@ -1982,7 +1982,7 @@ static void unmark_and_free(struct commit_list *list, unsigned int mark) } } -int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1) +int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid) { struct object *o; struct commit *old, *new; @@ -1993,12 +1993,12 @@ int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1) * Both new and old must be commit-ish and new is descendant of * old. Otherwise we require --force. */ - o = deref_tag(parse_object(old_sha1), NULL, 0); + o = deref_tag(parse_object(old_oid->hash), NULL, 0); if (!o || o->type != OBJ_COMMIT) return 0; old = (struct commit *) o; - o = deref_tag(parse_object(new_sha1), NULL, 0); + o = deref_tag(parse_object(new_oid->hash), NULL, 0); if (!o || o->type != OBJ_COMMIT) return 0; new = (struct commit *) o; diff --git a/remote.h b/remote.h index 163ea5e..4a039ba 100644 --- a/remote.h +++ b/remote.h @@ -150,7 +150,7 @@ extern struct ref **get_remote_heads(int in, char *src_buf, size_t src_len, struct sha1_array *shallow); int resolve_remote_symref(struct ref *ref, struct ref *list); -int ref_newer(const unsigned char *new_sha1, const unsigned char *old_sha1); +int ref_newer(const struct object_id *new_oid, const struct object_id *old_oid); /* * Remove and free all but the first of any entries in the input list -- 2.4.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html