push: further clean up fields of "struct ref"
authorJunio C Hamano <gitster@pobox.com>
Tue, 22 Jan 2013 04:24:07 +0000 (20:24 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Jan 2013 22:37:17 +0000 (14:37 -0800)
The "nonfastforward" and "update" fields are only used while
deciding what value to assign to the "status" locally in a single
function.  Remove them from the "struct ref".

The "requires_force" field is not used to decide if the proposed
update requires a --force option to succeed, or to record such a
decision made elsewhere.  It is used by status reporting code that
the particular update was "forced".  Rename it to "forced_update",
and move the code to assign to it around to further clarify how it
is used and what it is used for.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
remote.c
transport.c

diff --git a/cache.h b/cache.h
index a942bbd59f87600b597c452f92e9faaf1a7737bf..12631a17d3367c8dd1478c9061fd214c291cd019 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -1001,10 +1001,8 @@ struct ref {
        char *symref;
        unsigned int
                force:1,
-               requires_force:1,
+               forced_update:1,
                merge:1,
-               nonfastforward:1,
-               update:1,
                deletion:1;
        enum {
                REF_STATUS_NONE = 0,
index d3a1ca233becf76411a4653cee4416ce97ee1217..3375914abca3f7f1e5f1844f0674fe1543ca4d64 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -1317,27 +1317,23 @@ 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) {
-                       ref->nonfastforward =
+               if (!ref->deletion && !is_null_sha1(ref->old_sha1)) {
+                       int nonfastforward =
                                !has_sha1_file(ref->old_sha1)
-                                 || !ref_newer(ref->new_sha1, ref->old_sha1);
+                               || !ref_newer(ref->new_sha1, ref->old_sha1);
 
                        if (!prefixcmp(ref->name, "refs/tags/")) {
-                               ref->requires_force = 1;
                                if (!force_ref_update) {
                                        ref->status = REF_STATUS_REJECT_ALREADY_EXISTS;
                                        continue;
                                }
-                       } else if (ref->nonfastforward) {
-                               ref->requires_force = 1;
+                               ref->forced_update = 1;
+                       } else if (nonfastforward) {
                                if (!force_ref_update) {
                                        ref->status = REF_STATUS_REJECT_NONFASTFORWARD;
                                        continue;
                                }
+                               ref->forced_update = 1;
                        }
                }
        }
index 2673d273ff3aa5530ee57e8a3916bbbbc802466d..585ebcd2bffd6c113145bf47c7bd11989905fc66 100644 (file)
@@ -659,7 +659,7 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
                const char *msg;
 
                strcpy(quickref, status_abbrev(ref->old_sha1));
-               if (ref->requires_force) {
+               if (ref->forced_update) {
                        strcat(quickref, "...");
                        type = '+';
                        msg = "forced update";