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:
parent
256b9d70a4
commit
5ece083fc7
4
cache.h
4
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,
|
||||
|
16
remote.c
16
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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";
|
||||
|
Loading…
Reference in New Issue
Block a user