The "update" field in "struct ref" is only used in a very narrow scope in a single function. Remove it.
Also simplify the code that rejects an attempted push by first checking if the proposed update is forced (in which case we do not need any check on our end). Signed-off-by: Junio C Hamano <gits...@pobox.com> --- cache.h | 1 - remote.c | 42 +++++++++++++----------------------------- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/cache.h b/cache.h index 360bba5..377a3df 100644 --- a/cache.h +++ b/cache.h @@ -1003,7 +1003,6 @@ struct ref { force:1, forced_update:1, merge:1, - update:1, deletion:1; enum { REF_STATUS_NONE = 0, diff --git a/remote.c b/remote.c index 689dcf7..248910f 100644 --- a/remote.c +++ b/remote.c @@ -1317,37 +1317,21 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror, * passing the --force argument */ - ref->update = - !ref->deletion && - !is_null_sha1(ref->old_sha1); - - if (ref->update) { - if (!prefixcmp(ref->name, "refs/tags/")) { - if (!force_ref_update) { - ref->status = REF_STATUS_REJECT_ALREADY_EXISTS; - continue; - } - ref->forced_update = 1; - } else if (!has_sha1_file(ref->old_sha1) || - !lookup_commit_reference_gently(ref->old_sha1, 1)) { - if (!force_ref_update) { - ref->status = REF_STATUS_REJECT_FETCH_FIRST; - continue; - } - ref->forced_update = 1; - } else if (!lookup_commit_reference_gently(ref->new_sha1, 1)) { - if (!force_ref_update) { - ref->status = REF_STATUS_REJECT_NEEDS_FORCE; - continue; - } - ref->forced_update = 1; - } else if (!ref_newer(ref->new_sha1, ref->old_sha1)) { - if (!force_ref_update) { - ref->status = REF_STATUS_REJECT_NONFASTFORWARD; - continue; - } + if (!ref->deletion && !is_null_sha1(ref->old_sha1)) { + if (force_ref_update) { ref->forced_update = 1; + continue; } + + if (!prefixcmp(ref->name, "refs/tags/")) + ref->status = REF_STATUS_REJECT_ALREADY_EXISTS; + else if (!has_sha1_file(ref->old_sha1) || + !lookup_commit_reference_gently(ref->old_sha1, 1)) + ref->status = REF_STATUS_REJECT_FETCH_FIRST; + else if (!lookup_commit_reference_gently(ref->new_sha1, 1)) + ref->status = REF_STATUS_REJECT_NEEDS_FORCE; + else if (!ref_newer(ref->new_sha1, ref->old_sha1)) + ref->status = REF_STATUS_REJECT_NONFASTFORWARD; } } } -- 1.8.1.1.498.gfdee8be -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html