From: "Sean Allred via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Sean Allred <code@seanallred.com>
Subject: [PATCH v3 0/2] Improve consistency of git-var
Date: Sat, 26 Nov 2022 14:17:55 +0000 [thread overview]
Message-ID: <pull.1434.v3.git.1669472277.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1434.v2.git.1669395151.gitgitgadget@gmail.com>
This patch series makes a few distinct improvements to git-var to support
the change to git_editor() prompted [here][1] and ultimately support that
patch to introduce GIT_SEQUENCE_EDITOR as a handled logical variable.
Changes since v2:
* Nix premature assignment of git_var and val, preferring to let the
compiler tell us when they're being used before init.
* Factor out sane_unset_all_editors for tests to reduce duplication
* Use more specific test_* helper functions
Sean Allred (2):
var: do not print usage() with a correct invocation
var: allow GIT_EDITOR to return null
Documentation/git-var.txt | 3 +-
builtin/var.c | 29 +++++++++---------
t/t0007-git-var.sh | 62 +++++++++++++++++++++++++++++++++++++++
3 files changed, 78 insertions(+), 16 deletions(-)
base-commit: c000d916380bb59db69c78546928eadd076b9c7d
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1434%2Fvermiculus%2Fsa%2Fvar-improvements-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1434/vermiculus/sa/var-improvements-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/1434
Range-diff vs v2:
1: a7ff842a3e8 ! 1: 889fdf877a1 var: do not print usage() with a correct invocation
@@ builtin/var.c: static int show_config(const char *var, const char *value, void *
int cmd_var(int argc, const char **argv, const char *prefix)
{
-+ const struct git_var *git_var = NULL;
- const char *val = NULL;
+- const char *val = NULL;
++ const struct git_var *git_var;
++ const char *val;
++
if (argc != 2)
usage(var_usage);
+
@@ builtin/var.c: int cmd_var(int argc, const char **argv, const char *prefix)
return 0;
}
2: 427cb7b55ac ! 2: 3d8bf3662fe var: allow GIT_EDITOR to return null
@@ builtin/var.c: static const char var_usage[] = "git var (-l | <variable>)";
static const char *pager(int flag)
## t/t0007-git-var.sh ##
+@@ t/t0007-git-var.sh: test_description='basic sanity checks for git var'
+ TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+
++sane_unset_all_editors () {
++ sane_unset GIT_EDITOR &&
++ sane_unset VISUAL &&
++ sane_unset EDITOR
++}
++
+ test_expect_success 'get GIT_AUTHOR_IDENT' '
+ test_tick &&
+ echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&
@@ t/t0007-git-var.sh: test_expect_success 'get GIT_DEFAULT_BRANCH with configuration' '
)
'
+test_expect_success 'get GIT_EDITOR without configuration' '
+ (
-+ sane_unset GIT_EDITOR &&
-+ sane_unset VISUAL &&
-+ sane_unset EDITOR &&
-+ >expect &&
-+ ! git var GIT_EDITOR >actual &&
-+ test_cmp expect actual
++ sane_unset_all_editors &&
++ test_expect_code 1 git var GIT_EDITOR >out &&
++ test_must_be_empty out
+ )
+'
+
+test_expect_success 'get GIT_EDITOR with configuration' '
+ test_config core.editor foo &&
+ (
-+ sane_unset GIT_EDITOR &&
-+ sane_unset VISUAL &&
-+ sane_unset EDITOR &&
++ sane_unset_all_editors &&
+ echo foo >expect &&
+ git var GIT_EDITOR >actual &&
+ test_cmp expect actual
@@ t/t0007-git-var.sh: test_expect_success 'get GIT_DEFAULT_BRANCH with configurati
+
+test_expect_success 'get GIT_EDITOR with environment variable GIT_EDITOR' '
+ (
-+ sane_unset GIT_EDITOR &&
-+ sane_unset VISUAL &&
-+ sane_unset EDITOR &&
++ sane_unset_all_editors &&
+ echo bar >expect &&
+ GIT_EDITOR=bar git var GIT_EDITOR >actual &&
+ test_cmp expect actual
@@ t/t0007-git-var.sh: test_expect_success 'get GIT_DEFAULT_BRANCH with configurati
+
+test_expect_success 'get GIT_EDITOR with environment variable EDITOR' '
+ (
-+ sane_unset GIT_EDITOR &&
-+ sane_unset VISUAL &&
-+ sane_unset EDITOR &&
++ sane_unset_all_editors &&
+ echo bar >expect &&
+ EDITOR=bar git var GIT_EDITOR >actual &&
+ test_cmp expect actual
@@ t/t0007-git-var.sh: test_expect_success 'get GIT_DEFAULT_BRANCH with configurati
+test_expect_success 'get GIT_EDITOR with configuration and environment variable GIT_EDITOR' '
+ test_config core.editor foo &&
+ (
-+ sane_unset GIT_EDITOR &&
-+ sane_unset VISUAL &&
-+ sane_unset EDITOR &&
++ sane_unset_all_editors &&
+ echo bar >expect &&
+ GIT_EDITOR=bar git var GIT_EDITOR >actual &&
+ test_cmp expect actual
@@ t/t0007-git-var.sh: test_expect_success 'get GIT_DEFAULT_BRANCH with configurati
+test_expect_success 'get GIT_EDITOR with configuration and environment variable EDITOR' '
+ test_config core.editor foo &&
+ (
-+ sane_unset GIT_EDITOR &&
-+ sane_unset VISUAL &&
-+ sane_unset EDITOR &&
++ sane_unset_all_editors &&
+ echo foo >expect &&
+ EDITOR=bar git var GIT_EDITOR >actual &&
+ test_cmp expect actual
--
gitgitgadget
next prev parent reply other threads:[~2022-11-26 14:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-24 20:22 [PATCH 0/3] Improve consistency of git-var Sean Allred via GitGitGadget
2022-11-24 20:22 ` [PATCH 1/3] var: do not print usage() with a correct invocation Sean Allred via GitGitGadget
2022-11-24 20:22 ` [PATCH 2/3] var: remove read_var Sean Allred via GitGitGadget
2022-11-25 5:48 ` Junio C Hamano
2022-11-24 20:22 ` [PATCH 3/3] var: allow GIT_EDITOR to return null Sean Allred via GitGitGadget
2022-11-25 16:52 ` [PATCH v2 0/2] Improve consistency of git-var Sean Allred via GitGitGadget
2022-11-25 16:52 ` [PATCH v2 1/2] var: do not print usage() with a correct invocation Sean Allred via GitGitGadget
2022-11-25 22:45 ` Ævar Arnfjörð Bjarmason
2022-11-26 13:19 ` Sean Allred
2022-11-25 16:52 ` [PATCH v2 2/2] var: allow GIT_EDITOR to return null Sean Allred via GitGitGadget
2022-11-25 22:48 ` Ævar Arnfjörð Bjarmason
2022-11-26 13:54 ` Sean Allred
2022-11-26 14:17 ` Sean Allred via GitGitGadget [this message]
2022-11-26 14:17 ` [PATCH v3 1/2] var: do not print usage() with a correct invocation Sean Allred via GitGitGadget
2022-11-26 14:17 ` [PATCH v3 2/2] var: allow GIT_EDITOR to return null Sean Allred via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1434.v3.git.1669472277.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=code@seanallred.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.