push: further clean up fields of "struct ref"

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>
This commit is contained in:
Junio C Hamano 2013-01-21 20:24:07 -08:00
parent 256b9d70a4
commit 5ece083fc7
3 changed files with 8 additions and 14 deletions

View File

@ -1001,10 +1001,8 @@ struct ref {
char *symref; char *symref;
unsigned int unsigned int
force:1, force:1,
requires_force:1, forced_update:1,
merge:1, merge:1,
nonfastforward:1,
update:1,
deletion:1; deletion:1;
enum { enum {
REF_STATUS_NONE = 0, REF_STATUS_NONE = 0,

View File

@ -1317,27 +1317,23 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
* passing the --force argument * passing the --force argument
*/ */
ref->update = if (!ref->deletion && !is_null_sha1(ref->old_sha1)) {
!ref->deletion && int nonfastforward =
!is_null_sha1(ref->old_sha1);
if (ref->update) {
ref->nonfastforward =
!has_sha1_file(ref->old_sha1) !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/")) { if (!prefixcmp(ref->name, "refs/tags/")) {
ref->requires_force = 1;
if (!force_ref_update) { if (!force_ref_update) {
ref->status = REF_STATUS_REJECT_ALREADY_EXISTS; ref->status = REF_STATUS_REJECT_ALREADY_EXISTS;
continue; continue;
} }
} else if (ref->nonfastforward) { ref->forced_update = 1;
ref->requires_force = 1; } else if (nonfastforward) {
if (!force_ref_update) { if (!force_ref_update) {
ref->status = REF_STATUS_REJECT_NONFASTFORWARD; ref->status = REF_STATUS_REJECT_NONFASTFORWARD;
continue; continue;
} }
ref->forced_update = 1;
} }
} }
} }

View File

@ -659,7 +659,7 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
const char *msg; const char *msg;
strcpy(quickref, status_abbrev(ref->old_sha1)); strcpy(quickref, status_abbrev(ref->old_sha1));
if (ref->requires_force) { if (ref->forced_update) {
strcat(quickref, "..."); strcat(quickref, "...");
type = '+'; type = '+';
msg = "forced update"; msg = "forced update";