From patchwork Thu Aug 5 23:03:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Boeckel X-Patchwork-Id: 12422309 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ECCF4C432BE for ; Thu, 5 Aug 2021 23:03:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C3942610CD for ; Thu, 5 Aug 2021 23:03:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242027AbhHEXDv (ORCPT ); Thu, 5 Aug 2021 19:03:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47120 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233896AbhHEXDt (ORCPT ); Thu, 5 Aug 2021 19:03:49 -0400 Received: from mail-qv1-xf31.google.com (mail-qv1-xf31.google.com [IPv6:2607:f8b0:4864:20::f31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1663AC061798 for ; Thu, 5 Aug 2021 16:03:34 -0700 (PDT) Received: by mail-qv1-xf31.google.com with SMTP id dk2so3907678qvb.3 for ; Thu, 05 Aug 2021 16:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+0w2ZWyCz+3Q5f/O7IJjGcAHV2u3++QqgDNFYMB0Z2A=; b=M6nZL9rPjINGCOLFuY8sgnC5AGcQJmkWG1RA5PT/bYzzjgc/qW6m9QetMj4G+Tbt0g Sm4gHJrZLboeCM6zMaB/Dy76eJOMQ+eiLAebDbeOXSUcPJMsTwOrR/EzA/1SHO7AApHf AOGU0P9DbZ+nQ+yRr5uZZg4aOj5LV3HuQnmdekyTZroRYjWtlb3XZ71j6znvaJqnnG/x ZVzgZbVy26I7bSjJwC/7PHrHi/hmikzETEzknfsaYQrjMQHL1s0Pom7wC9jQ1690cXBT 95hQzARuWZozo8PKnSvqOR2davoEW6FevcVDR5Fnqkmhvdb7ghn1nK0vU4qn43Hg+Y/g AXhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+0w2ZWyCz+3Q5f/O7IJjGcAHV2u3++QqgDNFYMB0Z2A=; b=CNMjW18kdI2f60Iju1vu10qoq0u8Aq2pfL7LQCzCNCAdBp8yJ548hLUhVNZhhByE2w ceA397GBjugTJavK6uncfVSHkhcg5l/7z1SYC7rf8SE63KkDmAhivtesky9ivdAQOG5B DaYPpW/kF4eqPAmkRJ+DxeWhG7VpzIwAURirCR4HQLRq+mLLb9Et0RFuL8jR0vERclop pLDmhaoue2notu5cpz3EAyR5mz4mhB+2VNWRmNz6vGFgMfyM2b0U+njtMSM5ZHEOc3UJ K/YbLJWf+/lmE7pJ3daYnjgVj7yjNS2ElvNMgBWtVHGi6ahyGMAj6xa0PVtvEILOUSAA J05g== X-Gm-Message-State: AOAM530hjmRasNCPnRGbrewAO1EdBFABxFk3R7yjofAdtcQ1+8h3/4pn mrCIGEWgNAH+q1iEIOe2r4qTSOtkhqY= X-Google-Smtp-Source: ABdhPJyG2VoI+cvzj2sA7r5W7fMaSGpRwRBbJMGK30J23H9RDg6kfKP1PcdRoOeRUIK3VfIRnJLtEw== X-Received: by 2002:a05:6214:528a:: with SMTP id kj10mr7985219qvb.38.1628204612792; Thu, 05 Aug 2021 16:03:32 -0700 (PDT) Received: from localhost ([24.169.20.255]) by smtp.gmail.com with ESMTPSA id bi3sm3086410qkb.133.2021.08.05.16.03.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 16:03:32 -0700 (PDT) From: Ben Boeckel To: git@vger.kernel.org Cc: Ben Boeckel , Johannes Schindelin , Junio C Hamano Subject: [PATCH v2 1/4] advice: add enum variants for missing advice variables Date: Thu, 5 Aug 2021 19:03:18 -0400 Message-Id: <20210805230321.532218-2-mathstuf@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210805230321.532218-1-mathstuf@gmail.com> References: <20210731022504.1912702-1-mathstuf@gmail.com> <20210805230321.532218-1-mathstuf@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org In daef1b300b0 (Merge branch 'hw/advice-add-nothing', 2020-02-14), two advice settings were introduced into the `advice_config` array. Subsequently, c4a09cc9ccb (Merge branch 'hw/advise-ng', 2020-03-25) started to deprecate `advice_config` in favor of a new array, `advice_setting`. However, the latter branch did not include the former branch, and therefore `advice_setting` is missing the two entries added by the `hw/advice-add-nothing` branch. These are currently the only entries in `advice_config` missing from `advice_setting`. Signed-off-by: Ben Boeckel --- advice.c | 2 ++ advice.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/advice.c b/advice.c index 0b9c89c48a..6da51be63c 100644 --- a/advice.c +++ b/advice.c @@ -106,6 +106,8 @@ static struct { int enabled; } advice_setting[] = { [ADVICE_ADD_EMBEDDED_REPO] = { "addEmbeddedRepo", 1 }, + [ADVICE_ADD_EMPTY_PATHSPEC] = { "addEmptyPathspec", 1 }, + [ADVICE_ADD_IGNORED_FILE] = { "addIgnoredFile", 1 }, [ADVICE_AM_WORK_DIR] = { "amWorkDir", 1 }, [ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME] = { "checkoutAmbiguousRemoteBranchName", 1 }, [ADVICE_COMMIT_BEFORE_MERGE] = { "commitBeforeMerge", 1 }, diff --git a/advice.h b/advice.h index bd26c385d0..95489ab4c6 100644 --- a/advice.h +++ b/advice.h @@ -45,6 +45,8 @@ extern int advice_add_empty_pathspec; */ enum advice_type { ADVICE_ADD_EMBEDDED_REPO, + ADVICE_ADD_EMPTY_PATHSPEC, + ADVICE_ADD_IGNORED_FILE, ADVICE_AM_WORK_DIR, ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME, ADVICE_COMMIT_BEFORE_MERGE, From patchwork Thu Aug 5 23:03:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Boeckel X-Patchwork-Id: 12422311 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDF27C4320E for ; Thu, 5 Aug 2021 23:03:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AC8A661132 for ; Thu, 5 Aug 2021 23:03:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242055AbhHEXDw (ORCPT ); Thu, 5 Aug 2021 19:03:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242015AbhHEXDv (ORCPT ); Thu, 5 Aug 2021 19:03:51 -0400 Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 87A6FC0613D5 for ; Thu, 5 Aug 2021 16:03:35 -0700 (PDT) Received: by mail-qk1-x732.google.com with SMTP id c9so7998757qkc.13 for ; Thu, 05 Aug 2021 16:03:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kDSgHPABLCnPa37Hrom/my+uswkwkjE6NWjmwByC/cM=; b=VGKDkytFaxUsTfJQWWEyx87G05ft974q193fs/4ysmD4X5wbFU8UcVI3FAFJHs3bzK Xrnox7CqEZO9GmW9t28IfQYZfDYYisW36YzfYBWMUBnckmx3OijX0GKLv+UKWUJKOYCs TQj1YvaBM3llSdS4JNuxmHVq85dz37WWEb/f7B+G4YodvmlbjXxstLF5zUQ+bl3/3WkW 4+vLzKRuKB48qxy0WMOQz72Sj/QL7VAaytT/lEk0hW9nEMHZaGFWJ9xdUrDayQoZHuaL YRKkl6Itk35zoriK4TPkzWcAfsJA7j0usbBThrx9wEDYJ7UxNGq5xqdGpDdX75uIoOrD wA4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kDSgHPABLCnPa37Hrom/my+uswkwkjE6NWjmwByC/cM=; b=oQG2n6S+2e1WcrJXvdPn0JXEiphGgxlvrwKZ1gq/TRSYCHMCAQBrg1zhBvpC7Nb3le BBZSn+iJXIGPDEDNbdfxUNbhDFBG2KkyhFbTex9whTTauRmlVsZsxUnnUn8U34W9p/Dm 3d+zhmBXBcNMYLNRlf4OvcBx2Eb4VjuqoSKBwK+vS6lH3ZXhwMbfMZ33O/W6De7+GYGG 08XiRqgLeVaGB/l+/Hp0nV3Ic4qGdffhC91gUjmN+GFC9DwJ1uaroitu9lDF6nh7TYva TQrOcxxN5tANopW7o0b9crnEXZ8b966cAAtfwUgOTalP1JQkJQOV74mRBWuQxpgcKPoY btHA== X-Gm-Message-State: AOAM533S2vqkLXD4gQ0Jji1fe5P7EvnQLMrhSYY9CcGYAiLaJCa16gh4 6E7NJGv7kCY3Xm+cHcMfZBUzGpN0jVI= X-Google-Smtp-Source: ABdhPJz+YuJYpOHDIqE3/Fiv268NsyQprGAC91c8C0E/yesYk2u2gNGrBBqeDyoYhpRrAXX3m0CLsg== X-Received: by 2002:a05:620a:7ef:: with SMTP id k15mr7472428qkk.464.1628204614428; Thu, 05 Aug 2021 16:03:34 -0700 (PDT) Received: from localhost ([24.169.20.255]) by smtp.gmail.com with ESMTPSA id n124sm3816924qkf.119.2021.08.05.16.03.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 16:03:34 -0700 (PDT) From: Ben Boeckel To: git@vger.kernel.org Cc: Ben Boeckel , Johannes Schindelin , Junio C Hamano Subject: [PATCH v2 2/4] advice: remove read uses of global `advice_` variables Date: Thu, 5 Aug 2021 19:03:19 -0400 Message-Id: <20210805230321.532218-3-mathstuf@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210805230321.532218-1-mathstuf@gmail.com> References: <20210731022504.1912702-1-mathstuf@gmail.com> <20210805230321.532218-1-mathstuf@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org In c4a09cc9ccb (Merge branch 'hw/advise-ng', 2020-03-25), a new API for accessing advice variables was introduced and deprecated `advice_config` in favor of a new array, `advice_setting`. This patch ports all uses which read the status of the global `advice_` variables over to the new `advice_enabled` API. Signed-off-by: Ben Boeckel --- advice.c | 4 ++-- branch.c | 2 +- builtin/add.c | 6 +++--- builtin/am.c | 2 +- builtin/checkout.c | 6 +++--- builtin/clone.c | 2 +- builtin/commit.c | 4 ++-- builtin/fetch.c | 2 +- builtin/merge.c | 4 ++-- builtin/push.c | 12 ++++++------ builtin/reset.c | 2 +- builtin/rm.c | 2 +- builtin/submodule--helper.c | 2 +- commit.c | 2 +- editor.c | 2 +- notes-merge.c | 2 +- object-name.c | 2 +- remote.c | 12 ++++++------ run-command.c | 2 +- sequencer.c | 8 ++++---- unpack-trees.c | 18 +++++++++--------- wt-status.c | 6 +++--- 22 files changed, 52 insertions(+), 52 deletions(-) diff --git a/advice.c b/advice.c index 6da51be63c..0cf3cda26a 100644 --- a/advice.c +++ b/advice.c @@ -264,7 +264,7 @@ int error_resolve_conflict(const char *me) error(_("It is not possible to %s because you have unmerged files."), me); - if (advice_resolve_conflict) + if (advice_enabled(ADVICE_RESOLVE_CONFLICT)) /* * Message used both when 'git commit' fails and when * other commands doing a merge do. @@ -283,7 +283,7 @@ void NORETURN die_resolve_conflict(const char *me) void NORETURN die_conclude_merge(void) { error(_("You have not concluded your merge (MERGE_HEAD exists).")); - if (advice_resolve_conflict) + if (advice_enabled(ADVICE_RESOLVE_CONFLICT)) advise(_("Please, commit your changes before merging.")); die(_("Exiting because of unfinished merge.")); } diff --git a/branch.c b/branch.c index 7a88a4861e..07a46430b3 100644 --- a/branch.c +++ b/branch.c @@ -271,7 +271,7 @@ void create_branch(struct repository *r, real_ref = NULL; if (get_oid_mb(start_name, &oid)) { if (explicit_tracking) { - if (advice_set_upstream_failure) { + if (advice_enabled(ADVICE_SET_UPSTREAM_FAILURE)) { error(_(upstream_missing), start_name); advise(_(upstream_advice)); exit(1); diff --git a/builtin/add.c b/builtin/add.c index 09e684585d..a903306300 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -430,7 +430,7 @@ static void check_embedded_repo(const char *path) strbuf_strip_suffix(&name, "/"); warning(_("adding embedded git repository: %s"), name.buf); - if (advice_add_embedded_repo) { + if (advice_enabled(ADVICE_ADD_EMBEDDED_REPO)) { advise(embedded_advice, name.buf, name.buf); /* there may be multiple entries; advise only once */ advice_add_embedded_repo = 0; @@ -447,7 +447,7 @@ static int add_files(struct dir_struct *dir, int flags) fprintf(stderr, _(ignore_error)); for (i = 0; i < dir->ignored_nr; i++) fprintf(stderr, "%s\n", dir->ignored[i]->name); - if (advice_add_ignored_file) + if (advice_enabled(ADVICE_ADD_IGNORED_FILE)) advise(_("Use -f if you really want to add them.\n" "Turn this message off by running\n" "\"git config advice.addIgnoredFile false\"")); @@ -553,7 +553,7 @@ int cmd_add(int argc, const char **argv, const char *prefix) if (require_pathspec && pathspec.nr == 0) { fprintf(stderr, _("Nothing specified, nothing added.\n")); - if (advice_add_empty_pathspec) + if (advice_enabled(ADVICE_ADD_EMPTY_PATHSPEC)) advise( _("Maybe you wanted to say 'git add .'?\n" "Turn this message off by running\n" "\"git config advice.addEmptyPathspec false\"")); diff --git a/builtin/am.c b/builtin/am.c index 0b2d886c81..040435de8f 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -1819,7 +1819,7 @@ static void am_run(struct am_state *state, int resume) printf_ln(_("Patch failed at %s %.*s"), msgnum(state), linelen(state->msg), state->msg); - if (advice_amworkdir) + if (advice_enabled(ADVICE_AM_WORK_DIR)) advise(_("Use 'git am --show-current-patch=diff' to see the failed patch")); die_user_resolve(state); diff --git a/builtin/checkout.c b/builtin/checkout.c index f4cd7747d3..6d696cf304 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -923,7 +923,7 @@ static void update_refs_for_switch(const struct checkout_opts *opts, REF_NO_DEREF, UPDATE_REFS_DIE_ON_ERR); if (!opts->quiet) { if (old_branch_info->path && - advice_detached_head && !opts->force_detach) + advice_enabled(ADVICE_DETACHED_HEAD) && !opts->force_detach) detach_advice(new_branch_info->name); describe_detached_head(_("HEAD is now at"), new_branch_info->commit); } @@ -1016,7 +1016,7 @@ static void suggest_reattach(struct commit *commit, struct rev_info *revs) sb.buf); strbuf_release(&sb); - if (advice_detached_head) + if (advice_enabled(ADVICE_DETACHED_HEAD)) fprintf(stderr, Q_( /* The singular version */ @@ -1187,7 +1187,7 @@ static const char *parse_remote_branch(const char *arg, } if (!remote && num_matches > 1) { - if (advice_checkout_ambiguous_remote_branch_name) { + if (advice_enabled(ADVICE_CHECKOUT_AMBIGUOUS_REMOTE_BRANCH_NAME)) { advise(_("If you meant to check out a remote tracking branch on, e.g. 'origin',\n" "you can do so by fully qualifying the name with the --track option:\n" "\n" diff --git a/builtin/clone.c b/builtin/clone.c index 66fe66679c..c1603aa82b 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -786,7 +786,7 @@ static int checkout(int submodule_progress) return 0; } if (!strcmp(head, "HEAD")) { - if (advice_detached_head) + if (advice_enabled(ADVICE_DETACHED_HEAD)) detach_advice(oid_to_hex(&oid)); FREE_AND_NULL(head); } else { diff --git a/builtin/commit.c b/builtin/commit.c index 190d215d43..9566b030af 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -203,7 +203,7 @@ static void status_init_config(struct wt_status *s, config_fn_t fn) init_diff_ui_defaults(); git_config(fn, s); determine_whence(s); - s->hints = advice_status_hints; /* must come after git_config() */ + s->hints = advice_enabled(ADVICE_STATUS_HINTS); /* must come after git_config() */ } static void rollback_index_files(void) @@ -1026,7 +1026,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, */ if (!committable && whence != FROM_MERGE && !allow_empty && !(amend && is_a_merge(current_head))) { - s->hints = advice_status_hints; + s->hints = advice_enabled(ADVICE_STATUS_HINTS); s->display_comment_prefix = old_display_comment_prefix; run_status(stdout, index_file, prefix, 0, s); if (amend) diff --git a/builtin/fetch.c b/builtin/fetch.c index 25740c13df..2501e1d10d 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -1229,7 +1229,7 @@ static int store_updated_refs(const char *raw_url, const char *remote_name, " 'git remote prune %s' to remove any old, conflicting " "branches"), remote_name); - if (advice_fetch_show_forced_updates) { + if (advice_enabled(ADVICE_FETCH_SHOW_FORCED_UPDATES)) { if (!fetch_show_forced_updates) { warning(_(warn_show_forced_updates)); } else if (forced_updates_ms > FORCED_UPDATES_DELAY_WARNING_IN_MS) { diff --git a/builtin/merge.c b/builtin/merge.c index a8a843b1f5..2efb16626c 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -1367,14 +1367,14 @@ int cmd_merge(int argc, const char **argv, const char *prefix) * There is no unmerged entry, don't advise 'git * add/rm ', just 'git commit'. */ - if (advice_resolve_conflict) + if (advice_enabled(ADVICE_RESOLVE_CONFLICT)) die(_("You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you merge.")); else die(_("You have not concluded your merge (MERGE_HEAD exists).")); } if (ref_exists("CHERRY_PICK_HEAD")) { - if (advice_resolve_conflict) + if (advice_enabled(ADVICE_RESOLVE_CONFLICT)) die(_("You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you merge.")); else diff --git a/builtin/push.c b/builtin/push.c index e8b10a9b7e..4b026ce6c6 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -289,42 +289,42 @@ static const char message_advice_ref_needs_update[] = static void advise_pull_before_push(void) { - if (!advice_push_non_ff_current || !advice_push_update_rejected) + if (!advice_enabled(ADVICE_PUSH_NON_FF_CURRENT) || !advice_enabled(ADVICE_PUSH_UPDATE_REJECTED)) return; advise(_(message_advice_pull_before_push)); } static void advise_checkout_pull_push(void) { - if (!advice_push_non_ff_matching || !advice_push_update_rejected) + if (!advice_enabled(ADVICE_PUSH_NON_FF_MATCHING) || !advice_enabled(ADVICE_PUSH_UPDATE_REJECTED)) return; advise(_(message_advice_checkout_pull_push)); } static void advise_ref_already_exists(void) { - if (!advice_push_already_exists || !advice_push_update_rejected) + if (!advice_enabled(ADVICE_PUSH_ALREADY_EXISTS) || !advice_enabled(ADVICE_PUSH_UPDATE_REJECTED)) return; advise(_(message_advice_ref_already_exists)); } static void advise_ref_fetch_first(void) { - if (!advice_push_fetch_first || !advice_push_update_rejected) + if (!advice_enabled(ADVICE_PUSH_FETCH_FIRST) || !advice_enabled(ADVICE_PUSH_UPDATE_REJECTED)) return; advise(_(message_advice_ref_fetch_first)); } static void advise_ref_needs_force(void) { - if (!advice_push_needs_force || !advice_push_update_rejected) + if (!advice_enabled(ADVICE_PUSH_NEEDS_FORCE) || !advice_enabled(ADVICE_PUSH_UPDATE_REJECTED)) return; advise(_(message_advice_ref_needs_force)); } static void advise_ref_needs_update(void) { - if (!advice_push_ref_needs_update || !advice_push_update_rejected) + if (!advice_enabled(ADVICE_PUSH_REF_NEEDS_UPDATE) || !advice_enabled(ADVICE_PUSH_UPDATE_REJECTED)) return; advise(_(message_advice_ref_needs_update)); } diff --git a/builtin/reset.c b/builtin/reset.c index 43e855cb88..51c9e2f43f 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -412,7 +412,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix) refresh_index(&the_index, flags, NULL, NULL, _("Unstaged changes after reset:")); t_delta_in_ms = (getnanotime() - t_begin) / 1000000; - if (advice_reset_quiet_warning && t_delta_in_ms > REFRESH_INDEX_DELAY_WARNING_IN_MS) { + if (advice_enabled(ADVICE_RESET_QUIET_WARNING) && t_delta_in_ms > REFRESH_INDEX_DELAY_WARNING_IN_MS) { printf(_("\nIt took %.2f seconds to enumerate unstaged changes after reset. You can\n" "use '--quiet' to avoid this. Set the config setting reset.quiet to true\n" "to make this the default.\n"), t_delta_in_ms / 1000.0); diff --git a/builtin/rm.c b/builtin/rm.c index 8a24c715e0..3b44b807e5 100644 --- a/builtin/rm.c +++ b/builtin/rm.c @@ -55,7 +55,7 @@ static void print_error_files(struct string_list *files_list, strbuf_addf(&err_msg, "\n %s", files_list->items[i].string); - if (advice_rm_hints) + if (advice_enabled(ADVICE_RM_HINTS)) strbuf_addstr(&err_msg, hints_msg); *errs = error("%s", err_msg.buf); strbuf_release(&err_msg); diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index f73963ad67..e5a5dc6903 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -1747,7 +1747,7 @@ static int add_possible_reference_from_superproject( } else { switch (sas->error_mode) { case SUBMODULE_ALTERNATE_ERROR_DIE: - if (advice_submodule_alternate_error_strategy_die) + if (advice_enabled(ADVICE_SUBMODULE_ALTERNATE_ERROR_STRATEGY_DIE)) advise(_(alternate_error_advice)); die(_("submodule '%s' cannot add alternate: %s"), sas->submodule_name, err.buf); diff --git a/commit.c b/commit.c index 143f472c0f..17df05dce3 100644 --- a/commit.c +++ b/commit.c @@ -190,7 +190,7 @@ static int read_graft_file(struct repository *r, const char *graft_file) struct strbuf buf = STRBUF_INIT; if (!fp) return -1; - if (advice_graft_file_deprecated) + if (advice_enabled(ADVICE_GRAFT_FILE_DEPRECATED)) advise(_("Support for /info/grafts is deprecated\n" "and will be removed in a future Git version.\n" "\n" diff --git a/editor.c b/editor.c index 6303ae0ab0..fdd3eeafa9 100644 --- a/editor.c +++ b/editor.c @@ -58,7 +58,7 @@ static int launch_specified_editor(const char *editor, const char *path, const char *args[] = { editor, NULL, NULL }; struct child_process p = CHILD_PROCESS_INIT; int ret, sig; - int print_waiting_for_editor = advice_waiting_for_editor && isatty(2); + int print_waiting_for_editor = advice_enabled(ADVICE_WAITING_FOR_EDITOR) && isatty(2); if (print_waiting_for_editor) { /* diff --git a/notes-merge.c b/notes-merge.c index 46c1f7c7f1..b4a3a903e8 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -273,7 +273,7 @@ static void check_notes_merge_worktree(struct notes_merge_options *o) */ if (file_exists(git_path(NOTES_MERGE_WORKTREE)) && !is_empty_dir(git_path(NOTES_MERGE_WORKTREE))) { - if (advice_resolve_conflict) + if (advice_enabled(ADVICE_RESOLVE_CONFLICT)) die(_("You have not concluded your previous " "notes merge (%s exists).\nPlease, use " "'git notes merge --commit' or 'git notes " diff --git a/object-name.c b/object-name.c index 64202de60b..23758190ed 100644 --- a/object-name.c +++ b/object-name.c @@ -812,7 +812,7 @@ static int get_oid_basic(struct repository *r, const char *str, int len, refs_found = repo_dwim_ref(r, str, len, &tmp_oid, &real_ref, 0); if (refs_found > 0) { warning(warn_msg, len, str); - if (advice_object_name_warning) + if (advice_enabled(ADVICE_OBJECT_NAME_WARNING)) fprintf(stderr, "%s\n", _(object_name_msg)); } free(real_ref); diff --git a/remote.c b/remote.c index dfb863d808..4ef53a6e30 100644 --- a/remote.c +++ b/remote.c @@ -1111,7 +1111,7 @@ static void show_push_unqualified_ref_name_error(const char *dst_value, "Neither worked, so we gave up. You must fully qualify the ref."), dst_value, matched_src_name); - if (!advice_push_unqualified_ref_name) + if (!advice_enabled(ADVICE_PUSH_UNQUALIFIED_REF_NAME)) return; if (get_oid(matched_src_name, &oid)) @@ -2118,7 +2118,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb, strbuf_addf(sb, _("Your branch is based on '%s', but the upstream is gone.\n"), base); - if (advice_status_hints) + if (advice_enabled(ADVICE_STATUS_HINTS)) strbuf_addstr(sb, _(" (use \"git branch --unset-upstream\" to fixup)\n")); } else if (!sti) { @@ -2129,7 +2129,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb, strbuf_addf(sb, _("Your branch and '%s' refer to different commits.\n"), base); - if (advice_status_hints) + if (advice_enabled(ADVICE_STATUS_HINTS)) strbuf_addf(sb, _(" (use \"%s\" for details)\n"), "git status --ahead-behind"); } else if (!theirs) { @@ -2138,7 +2138,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb, "Your branch is ahead of '%s' by %d commits.\n", ours), base, ours); - if (advice_status_hints) + if (advice_enabled(ADVICE_STATUS_HINTS)) strbuf_addstr(sb, _(" (use \"git push\" to publish your local commits)\n")); } else if (!ours) { @@ -2149,7 +2149,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb, "and can be fast-forwarded.\n", theirs), base, theirs); - if (advice_status_hints) + if (advice_enabled(ADVICE_STATUS_HINTS)) strbuf_addstr(sb, _(" (use \"git pull\" to update your local branch)\n")); } else { @@ -2162,7 +2162,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb, "respectively.\n", ours + theirs), base, ours, theirs); - if (advice_status_hints) + if (advice_enabled(ADVICE_STATUS_HINTS)) strbuf_addstr(sb, _(" (use \"git pull\" to merge the remote branch into yours)\n")); } diff --git a/run-command.c b/run-command.c index f72e72cce7..28e3eb5732 100644 --- a/run-command.c +++ b/run-command.c @@ -1336,7 +1336,7 @@ const char *find_hook(const char *name) err = errno; #endif - if (err == EACCES && advice_ignored_hook) { + if (err == EACCES && advice_enabled(ADVICE_IGNORED_HOOK)) { static struct string_list advise_given = STRING_LIST_INIT_DUP; if (!string_list_lookup(&advise_given, name)) { diff --git a/sequencer.c b/sequencer.c index 0bec01cf38..e0b4c86c1a 100644 --- a/sequencer.c +++ b/sequencer.c @@ -486,7 +486,7 @@ static int error_dirty_index(struct repository *repo, struct replay_opts *opts) error(_("your local changes would be overwritten by %s."), _(action_name(opts))); - if (advice_commit_before_merge) + if (advice_enabled(ADVICE_COMMIT_BEFORE_MERGE)) advise(_("commit your changes or stash them to proceed.")); return -1; } @@ -1293,7 +1293,7 @@ void print_commit_summary(struct repository *r, if (!committer_ident_sufficiently_given()) { strbuf_addstr(&format, "\n Committer: "); strbuf_addbuf_percentquote(&format, &committer_ident); - if (advice_implicit_identity) { + if (advice_enabled(ADVICE_IMPLICIT_IDENTITY)) { strbuf_addch(&format, '\n'); strbuf_addstr(&format, implicit_ident_advice()); } @@ -3041,7 +3041,7 @@ static int create_seq_dir(struct repository *r) } if (in_progress_error) { error("%s", in_progress_error); - if (advice_sequencer_in_use) + if (advice_enabled(ADVICE_SEQUENCER_IN_USE)) advise(in_progress_advice, advise_skip ? "--skip | " : ""); return -1; @@ -3245,7 +3245,7 @@ int sequencer_skip(struct repository *r, struct replay_opts *opts) give_advice: error(_("there is nothing to skip")); - if (advice_resolve_conflict) { + if (advice_enabled(ADVICE_RESOLVE_CONFLICT)) { advise(_("have you committed already?\n" "try \"git %s --continue\""), action == REPLAY_REVERT ? "revert" : "cherry-pick"); diff --git a/unpack-trees.c b/unpack-trees.c index f88a69f8e7..eb5015623b 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -111,17 +111,17 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts, strvec_init(&opts->msgs_to_free); if (!strcmp(cmd, "checkout")) - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("Your local changes to the following files would be overwritten by checkout:\n%%s" "Please commit your changes or stash them before you switch branches.") : _("Your local changes to the following files would be overwritten by checkout:\n%%s"); else if (!strcmp(cmd, "merge")) - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("Your local changes to the following files would be overwritten by merge:\n%%s" "Please commit your changes or stash them before you merge.") : _("Your local changes to the following files would be overwritten by merge:\n%%s"); else - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("Your local changes to the following files would be overwritten by %s:\n%%s" "Please commit your changes or stash them before you %s.") : _("Your local changes to the following files would be overwritten by %s:\n%%s"); @@ -132,17 +132,17 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts, _("Updating the following directories would lose untracked files in them:\n%s"); if (!strcmp(cmd, "checkout")) - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("The following untracked working tree files would be removed by checkout:\n%%s" "Please move or remove them before you switch branches.") : _("The following untracked working tree files would be removed by checkout:\n%%s"); else if (!strcmp(cmd, "merge")) - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("The following untracked working tree files would be removed by merge:\n%%s" "Please move or remove them before you merge.") : _("The following untracked working tree files would be removed by merge:\n%%s"); else - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("The following untracked working tree files would be removed by %s:\n%%s" "Please move or remove them before you %s.") : _("The following untracked working tree files would be removed by %s:\n%%s"); @@ -150,17 +150,17 @@ void setup_unpack_trees_porcelain(struct unpack_trees_options *opts, strvec_pushf(&opts->msgs_to_free, msg, cmd, cmd); if (!strcmp(cmd, "checkout")) - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("The following untracked working tree files would be overwritten by checkout:\n%%s" "Please move or remove them before you switch branches.") : _("The following untracked working tree files would be overwritten by checkout:\n%%s"); else if (!strcmp(cmd, "merge")) - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("The following untracked working tree files would be overwritten by merge:\n%%s" "Please move or remove them before you merge.") : _("The following untracked working tree files would be overwritten by merge:\n%%s"); else - msg = advice_commit_before_merge + msg = advice_enabled(ADVICE_COMMIT_BEFORE_MERGE) ? _("The following untracked working tree files would be overwritten by %s:\n%%s" "Please move or remove them before you %s.") : _("The following untracked working tree files would be overwritten by %s:\n%%s"); diff --git a/wt-status.c b/wt-status.c index c0dbf96749..1850251d8c 100644 --- a/wt-status.c +++ b/wt-status.c @@ -736,7 +736,7 @@ static void wt_status_collect_untracked(struct wt_status *s) dir_clear(&dir); - if (advice_status_u_option) + if (advice_enabled(ADVICE_STATUS_U_OPTION)) s->untracked_in_ms = (getnanotime() - t_begin) / 1000000; } @@ -1107,7 +1107,7 @@ static void wt_longstatus_print_tracking(struct wt_status *s) if (!format_tracking_info(branch, &sb, s->ahead_behind_flags)) return; - if (advice_status_ahead_behind_warning && + if (advice_enabled(ADVICE_STATUS_AHEAD_BEHIND_WARNING) && s->ahead_behind_flags == AHEAD_BEHIND_FULL) { uint64_t t_delta_in_ms = (getnanotime() - t_begin) / 1000000; if (t_delta_in_ms > AB_DELAY_WARNING_IN_MS) { @@ -1786,7 +1786,7 @@ static void wt_longstatus_print(struct wt_status *s) wt_longstatus_print_other(s, &s->untracked, _("Untracked files"), "add"); if (s->show_ignored_mode) wt_longstatus_print_other(s, &s->ignored, _("Ignored files"), "add -f"); - if (advice_status_u_option && 2000 < s->untracked_in_ms) { + if (advice_enabled(ADVICE_STATUS_U_OPTION) && 2000 < s->untracked_in_ms) { status_printf_ln(s, GIT_COLOR_NORMAL, "%s", ""); status_printf_ln(s, GIT_COLOR_NORMAL, _("It took %.2f seconds to enumerate untracked files. 'status -uno'\n" From patchwork Thu Aug 5 23:03:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Boeckel X-Patchwork-Id: 12422313 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 500A0C4338F for ; Thu, 5 Aug 2021 23:03:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2B87D610FC for ; Thu, 5 Aug 2021 23:03:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242080AbhHEXD4 (ORCPT ); Thu, 5 Aug 2021 19:03:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242015AbhHEXDx (ORCPT ); Thu, 5 Aug 2021 19:03:53 -0400 Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com [IPv6:2607:f8b0:4864:20::730]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6B35C061798 for ; Thu, 5 Aug 2021 16:03:36 -0700 (PDT) Received: by mail-qk1-x730.google.com with SMTP id o13so8019431qkk.9 for ; Thu, 05 Aug 2021 16:03:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OQ3PAW5NnDEOQDcTpseBrYoHNfaMEmvwPol5LZZS/ms=; b=TpAI0Bwu0GxwMoTjiTurboeRY8jTsA2lihPfNPU2oC4az0ZAC7trKlj0073i7kAJQ8 09wmZaGt11/ELAsHhuOgE8Fz4knUOlnDl6OR0TE6sOTPh8RrmficW3Tx8nVI/CFH5jwf LRTy+mWvgUUDxYP6Fiu8Jd2fqYcy3tKkhfpzYp6YKIMm1VwgmWls2DiYJ2udd4zvnSvh FrahUdFNULFGnlM9X2dfDaNlOHlXFLWsiuqLswLXgmct++LavyVAIrFBEBQoOc/Q88rN FEO14ndDI3U5fcmAAVvjWECx7AHSqDF/rPcJzJL/GEszeHij+ExZYk57LaLrpiIIYSsm yhbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OQ3PAW5NnDEOQDcTpseBrYoHNfaMEmvwPol5LZZS/ms=; b=Dh6jQPXuMoQBJlMWKXG7GmETEhXQRObFwfGZObl0BD3PGFyWUErdb1nQokfucbTgI8 3IfxvDKoPxfSf4ttN8Nj0qa5Fth9EF5HD/ZPc0F8+HA6Kj8GS/7Gkuf3Wt9h/vMWUa8L kJ0ZoY4xcuf2OtXfaqGE3L2k0ezBdb3oaKHpVqIVCnil8J94/SBIgN3eAO3/eVcN+pK0 aPYOFQ14YtznzFh3C85Q6HaQ+7dM7pbdZOdiY/+5D1Zcj2fB22GxJZuItDpD+DLaTDC8 Hqc3wKa9vqCWn4P+nc2fjdBFB/xxdTLjXPilxdv/PVysNF0AYIt5AsxnePPpiYEBF+OA LsBQ== X-Gm-Message-State: AOAM531EFiEDQud3MSHNg8TwqJM719yy4A9pLzFrb8XD6H6RJQsfyTze EXlYLsJNu5/U7JS6FumSd+jYGQVufH8= X-Google-Smtp-Source: ABdhPJxpyQnawAZ+sjaxtdXPqhMKBZCd5LsUGu/2QIFOcclvN78KremXSKsEwWhhTKH8PLgw3BeWbg== X-Received: by 2002:a05:620a:1311:: with SMTP id o17mr7600720qkj.157.1628204615925; Thu, 05 Aug 2021 16:03:35 -0700 (PDT) Received: from localhost ([24.169.20.255]) by smtp.gmail.com with ESMTPSA id o63sm3796818qkf.4.2021.08.05.16.03.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 16:03:35 -0700 (PDT) From: Ben Boeckel To: git@vger.kernel.org Cc: Ben Boeckel , Johannes Schindelin , Junio C Hamano Subject: [PATCH v2 3/4] advice: add `advice_set` to update advice settings at runtime Date: Thu, 5 Aug 2021 19:03:20 -0400 Message-Id: <20210805230321.532218-4-mathstuf@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210805230321.532218-1-mathstuf@gmail.com> References: <20210731022504.1912702-1-mathstuf@gmail.com> <20210805230321.532218-1-mathstuf@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org There are two uses of global `advice_` variables that write to them. Replace these uses with a new API that writes to the internal table so that the global variables may be removed completely. Signed-off-by: Ben Boeckel --- advice.c | 5 +++++ advice.h | 5 +++++ builtin/add.c | 2 +- builtin/replace.c | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/advice.c b/advice.c index 0cf3cda26a..ee4edc5e28 100644 --- a/advice.c +++ b/advice.c @@ -189,6 +189,11 @@ int advice_enabled(enum advice_type type) } } +void advice_set(enum advice_type type, int value) +{ + advice_setting[type].enabled = value; +} + void advise_if_enabled(enum advice_type type, const char *advice, ...) { va_list params; diff --git a/advice.h b/advice.h index 95489ab4c6..101c4054b7 100644 --- a/advice.h +++ b/advice.h @@ -89,6 +89,11 @@ void advise(const char *advice, ...); */ int advice_enabled(enum advice_type type); +/** + * Enable or disable advice of a certain kind. + */ +void advice_set(enum advice_type type, int value); + /** * Checks the visibility of the advice before printing. */ diff --git a/builtin/add.c b/builtin/add.c index a903306300..3d1fd64294 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -433,7 +433,7 @@ static void check_embedded_repo(const char *path) if (advice_enabled(ADVICE_ADD_EMBEDDED_REPO)) { advise(embedded_advice, name.buf, name.buf); /* there may be multiple entries; advise only once */ - advice_add_embedded_repo = 0; + advice_set(ADVICE_ADD_EMBEDDED_REPO, 0); } strbuf_release(&name); diff --git a/builtin/replace.c b/builtin/replace.c index cd48765911..1340878021 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -507,7 +507,7 @@ static int convert_graft_file(int force) if (!fp) return -1; - advice_graft_file_deprecated = 0; + advice_set(ADVICE_GRAFT_FILE_DEPRECATED, 0); while (strbuf_getline(&buf, fp) != EOF) { if (*buf.buf == '#') continue; From patchwork Thu Aug 5 23:03:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Boeckel X-Patchwork-Id: 12422315 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 09261C432BE for ; Thu, 5 Aug 2021 23:03:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E154661132 for ; Thu, 5 Aug 2021 23:03:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242122AbhHEXD5 (ORCPT ); Thu, 5 Aug 2021 19:03:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242095AbhHEXDy (ORCPT ); Thu, 5 Aug 2021 19:03:54 -0400 Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6C92C061799 for ; Thu, 5 Aug 2021 16:03:38 -0700 (PDT) Received: by mail-qk1-x732.google.com with SMTP id z24so8043246qkz.7 for ; Thu, 05 Aug 2021 16:03:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rNX0DZVEAScxqTdGrimMW7a1Q0qrHrNZqW+/ePMwGBo=; b=EIyDAjwc9SZiqgcHsC9myIrihfGgQo4rtHw5eBfNJ96yK49hp5RkH6JO/ERKT/+9MR Z1/9DYl0uX3qTEW6N222MrBJ5u87bAE00rtLYij8Jp0RZ5MUxWYbQ8P8ngpC3YdawjW8 DsFUOQQ9jZz+1aTiIDBJ8xJA0YDHB9XFkBYoiJ86OdcYGpWZ4/YhC7YhnEgkKjHCHPvD J0wehMBQfsmfChfXaothFboRcPjYqkccgAaUvbxV9l8pVCrqFLAVGz0ddIOe/tOjn7WA jUBH0Y0viEx6znGV4jXxmkWzQlk70jMBiLzMXk8G4EEDZj7HhHiDSQ5WaJyza8fWLZk4 y+wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rNX0DZVEAScxqTdGrimMW7a1Q0qrHrNZqW+/ePMwGBo=; b=YUUgjBRpnwNhHa2OgmKMeDkPfPKfTBCJ/Ch1Pg1LdyQd0d72hkDKgHMRWTJxlmYjoD y6MmaQhQqs4jJmwP7iU5/tRvfH0lEiI06AtEfkd+8f3+9uyUJ5qmbUQVqe9ZXJET0olS X5d8BZ/C6WyfGw1DK81LlZu5i3ZjmUTd2V2qjAx+GQbOOY0ndDlFdWAuwe/MQGMdFAvI BHB5VmSlPkaK3Vj0fex1+jTCoakqQrJb9oFgDb0xanXc8cYoFtuqNkeOyQfk1Nw0uZTw /zmRqUgGcxmJHbvSXnZF3R1IMwdQVDNURpp8kVhOxR3kBl/CQ9+uH6WeldjqvGHgwmlL weLQ== X-Gm-Message-State: AOAM533OKLewK9hMCCDWG15dgq3j9kP6cgLiXE1zpIgszNUjq51Kotuk iyPrXH4jgSmTISbnT0F8tCW8q2d7bvI= X-Google-Smtp-Source: ABdhPJxZCEOtmvhvU8jLmnWJvE60YxH4mHQ4DRkvnwLY1j8h99btaCjsByAxBfxtiZNzDa+hTyEf+g== X-Received: by 2002:a05:620a:7e4:: with SMTP id k4mr7302723qkk.328.1628204617790; Thu, 05 Aug 2021 16:03:37 -0700 (PDT) Received: from localhost ([24.169.20.255]) by smtp.gmail.com with ESMTPSA id i4sm3567820qka.130.2021.08.05.16.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Aug 2021 16:03:37 -0700 (PDT) From: Ben Boeckel To: git@vger.kernel.org Cc: Ben Boeckel , Johannes Schindelin , Junio C Hamano Subject: [PATCH v2 4/4] advice: remove static global variables for advice tracking Date: Thu, 5 Aug 2021 19:03:21 -0400 Message-Id: <20210805230321.532218-5-mathstuf@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210805230321.532218-1-mathstuf@gmail.com> References: <20210731022504.1912702-1-mathstuf@gmail.com> <20210805230321.532218-1-mathstuf@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org All of the preferences are now tracked as part of the `advice_setting` array and all consumers of the global variables have been removed, so the parallel tracking through `advice_config` is no longer necessary. This concludes the move from the old advice API to the new one introduced via c4a09cc9ccb (Merge branch 'hw/advise-ng', 2020-03-25). Signed-off-by: Ben Boeckel --- advice.c | 77 -------------------------------------------------------- advice.h | 31 ----------------------- 2 files changed, 108 deletions(-) diff --git a/advice.c b/advice.c index ee4edc5e28..6ba47f3f5e 100644 --- a/advice.c +++ b/advice.c @@ -4,37 +4,6 @@ #include "help.h" #include "string-list.h" -int advice_fetch_show_forced_updates = 1; -int advice_push_update_rejected = 1; -int advice_push_non_ff_current = 1; -int advice_push_non_ff_matching = 1; -int advice_push_already_exists = 1; -int advice_push_fetch_first = 1; -int advice_push_needs_force = 1; -int advice_push_unqualified_ref_name = 1; -int advice_push_ref_needs_update = 1; -int advice_status_hints = 1; -int advice_status_u_option = 1; -int advice_status_ahead_behind_warning = 1; -int advice_commit_before_merge = 1; -int advice_reset_quiet_warning = 1; -int advice_resolve_conflict = 1; -int advice_sequencer_in_use = 1; -int advice_implicit_identity = 1; -int advice_detached_head = 1; -int advice_set_upstream_failure = 1; -int advice_object_name_warning = 1; -int advice_amworkdir = 1; -int advice_rm_hints = 1; -int advice_add_embedded_repo = 1; -int advice_ignored_hook = 1; -int advice_waiting_for_editor = 1; -int advice_graft_file_deprecated = 1; -int advice_checkout_ambiguous_remote_branch_name = 1; -int advice_submodule_alternate_error_strategy_die = 1; -int advice_add_ignored_file = 1; -int advice_add_empty_pathspec = 1; - static int advice_use_color = -1; static char advice_colors[][COLOR_MAXLEN] = { GIT_COLOR_RESET, @@ -62,45 +31,6 @@ static const char *advise_get_color(enum color_advice ix) return ""; } -static struct { - const char *name; - int *preference; -} advice_config[] = { - { "fetchShowForcedUpdates", &advice_fetch_show_forced_updates }, - { "pushUpdateRejected", &advice_push_update_rejected }, - { "pushNonFFCurrent", &advice_push_non_ff_current }, - { "pushNonFFMatching", &advice_push_non_ff_matching }, - { "pushAlreadyExists", &advice_push_already_exists }, - { "pushFetchFirst", &advice_push_fetch_first }, - { "pushNeedsForce", &advice_push_needs_force }, - { "pushUnqualifiedRefName", &advice_push_unqualified_ref_name }, - { "pushRefNeedsUpdate", &advice_push_ref_needs_update }, - { "statusHints", &advice_status_hints }, - { "statusUoption", &advice_status_u_option }, - { "statusAheadBehindWarning", &advice_status_ahead_behind_warning }, - { "commitBeforeMerge", &advice_commit_before_merge }, - { "resetQuiet", &advice_reset_quiet_warning }, - { "resolveConflict", &advice_resolve_conflict }, - { "sequencerInUse", &advice_sequencer_in_use }, - { "implicitIdentity", &advice_implicit_identity }, - { "detachedHead", &advice_detached_head }, - { "setUpstreamFailure", &advice_set_upstream_failure }, - { "objectNameWarning", &advice_object_name_warning }, - { "amWorkDir", &advice_amworkdir }, - { "rmHints", &advice_rm_hints }, - { "addEmbeddedRepo", &advice_add_embedded_repo }, - { "ignoredHook", &advice_ignored_hook }, - { "waitingForEditor", &advice_waiting_for_editor }, - { "graftFileDeprecated", &advice_graft_file_deprecated }, - { "checkoutAmbiguousRemoteBranchName", &advice_checkout_ambiguous_remote_branch_name }, - { "submoduleAlternateErrorStrategyDie", &advice_submodule_alternate_error_strategy_die }, - { "addIgnoredFile", &advice_add_ignored_file }, - { "addEmptyPathspec", &advice_add_empty_pathspec }, - - /* make this an alias for backward compatibility */ - { "pushNonFastForward", &advice_push_update_rejected } -}; - static struct { const char *key; int enabled; @@ -228,13 +158,6 @@ int git_default_advice_config(const char *var, const char *value) if (!skip_prefix(var, "advice.", &k)) return 0; - for (i = 0; i < ARRAY_SIZE(advice_config); i++) { - if (strcasecmp(k, advice_config[i].name)) - continue; - *advice_config[i].preference = git_config_bool(var, value); - break; - } - for (i = 0; i < ARRAY_SIZE(advice_setting); i++) { if (strcasecmp(k, advice_setting[i].key)) continue; diff --git a/advice.h b/advice.h index 101c4054b7..17ee5d3633 100644 --- a/advice.h +++ b/advice.h @@ -5,37 +5,6 @@ struct string_list; -extern int advice_fetch_show_forced_updates; -extern int advice_push_update_rejected; -extern int advice_push_non_ff_current; -extern int advice_push_non_ff_matching; -extern int advice_push_already_exists; -extern int advice_push_fetch_first; -extern int advice_push_needs_force; -extern int advice_push_unqualified_ref_name; -extern int advice_push_ref_needs_update; -extern int advice_status_hints; -extern int advice_status_u_option; -extern int advice_status_ahead_behind_warning; -extern int advice_commit_before_merge; -extern int advice_reset_quiet_warning; -extern int advice_resolve_conflict; -extern int advice_sequencer_in_use; -extern int advice_implicit_identity; -extern int advice_detached_head; -extern int advice_set_upstream_failure; -extern int advice_object_name_warning; -extern int advice_amworkdir; -extern int advice_rm_hints; -extern int advice_add_embedded_repo; -extern int advice_ignored_hook; -extern int advice_waiting_for_editor; -extern int advice_graft_file_deprecated; -extern int advice_checkout_ambiguous_remote_branch_name; -extern int advice_submodule_alternate_error_strategy_die; -extern int advice_add_ignored_file; -extern int advice_add_empty_pathspec; - /* * To add a new advice, you need to: * Define a new advice_type.