From: Jonathan Nieder <jrnieder@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Jeff King" <peff@peff.net>, "Junio C Hamano" <gitster@pobox.com>,
"Johannes Sixt" <j6t@kdbg.org>
Subject: [PATCH 9/9 v2] config: run setup before commiting pager choice
Date: Tue, 13 Apr 2010 21:23:15 -0500 [thread overview]
Message-ID: <20100414022315.GC22766@progeny.tock> (raw)
In-Reply-To: <20100413023124.GI4118@progeny.tock>
From: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
For the pager choice (and the choice to paginate in the first place)
to reflect the current repository configuration, the repository
needs to be searched for first.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Rebased for changes to t7006 in patches 2, 3, 4 v2.
builtin/config.c | 6 ++----
git.c | 4 ++--
| 22 ++++++++++++++++------
3 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/builtin/config.c b/builtin/config.c
index 4bc46b1..ecc8f87 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -326,11 +326,9 @@ static int get_colorbool(int print)
return get_colorbool_found ? 0 : 1;
}
-int cmd_config(int argc, const char **argv, const char *unused_prefix)
+int cmd_config(int argc, const char **argv, const char *prefix)
{
- int nongit;
char *value;
- const char *prefix = setup_git_directory_gently(&nongit);
config_exclusive_filename = getenv(CONFIG_ENVIRONMENT);
@@ -409,7 +407,7 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
}
else if (actions == ACTION_EDIT) {
check_argc(argc, 0, 0);
- if (!config_exclusive_filename && nongit)
+ if (!config_exclusive_filename && !startup_info->have_repository)
die("not in a git directory");
git_config(git_default_config, NULL);
launch_editor(config_exclusive_filename ?
diff --git a/git.c b/git.c
index 56e93cf..0a0d9eb 100644
--- a/git.c
+++ b/git.c
@@ -309,7 +309,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "clean", cmd_clean, RUN_SETUP | NEED_WORK_TREE },
{ "commit", cmd_commit, RUN_SETUP | NEED_WORK_TREE },
{ "commit-tree", cmd_commit_tree, RUN_SETUP },
- { "config", cmd_config },
+ { "config", cmd_config, RUN_SETUP_GENTLY },
{ "count-objects", cmd_count_objects, RUN_SETUP },
{ "describe", cmd_describe, RUN_SETUP },
{ "diff", cmd_diff },
@@ -366,7 +366,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "reflog", cmd_reflog, RUN_SETUP },
{ "remote", cmd_remote, RUN_SETUP },
{ "replace", cmd_replace, RUN_SETUP },
- { "repo-config", cmd_config },
+ { "repo-config", cmd_config, RUN_SETUP_GENTLY },
{ "rerere", cmd_rerere, RUN_SETUP },
{ "reset", cmd_reset, RUN_SETUP },
{ "rev-list", cmd_rev_list, RUN_SETUP },
--git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 97ca5d6..d649f55 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -80,7 +80,7 @@ test_expect_success TTY 'git rev-list uses a pager if configured to' '
git config --unset pager.rev-list
rm -f paginated.out
-test_expect_failure TTY 'git config uses a pager if configured to' '
+test_expect_success TTY 'git config uses a pager if configured to' '
git config pager.config true &&
test_terminal git config --list &&
test -e paginated.out
@@ -175,7 +175,7 @@ test_default_pager() {
parse_args "$@"
unset PAGER GIT_PAGER
- git config --unset core.pager
+ git --no-pager config --unset core.pager
rm -f default_pager_used
$test_expectation SIMPLEPAGER "$cmd - default pager is used by default" "
cat >$less <<-\EOF &&
@@ -196,7 +196,7 @@ test_PAGER_overrides() {
parse_args "$@"
unset GIT_PAGER
- git config --unset core.pager
+ git --no-pager config --unset core.pager
rm -f PAGER_used
$test_expectation TTY "$cmd - PAGER overrides default pager" "
PAGER='wc > PAGER_used' &&
@@ -235,7 +235,7 @@ test_core_pager() {
$test_expectation TTY "$cmd - core.pager $used_if_wanted" "
PAGER=wc &&
export PAGER &&
- git config core.pager 'wc > core.pager_used' &&
+ git --no-pager config core.pager 'wc > core.pager_used' &&
$full_command &&
${if_want_local_config}test -e core.pager_used
"
@@ -261,7 +261,7 @@ test_pager_subdir_helper() {
stampname=\$(pwd)/core.pager_used &&
PAGER=wc &&
export PAGER stampname &&
- git config core.pager 'wc > \"\$stampname\"' &&
+ git --no-pager config core.pager 'wc > \"\$stampname\"' &&
mkdir sub &&
(
cd sub &&
@@ -276,7 +276,7 @@ test_GIT_PAGER_overrides() {
rm -f GIT_PAGER_used
$test_expectation TTY "$cmd - GIT_PAGER overrides core.pager" "
- git config core.pager wc &&
+ git --no-pager config core.pager wc &&
GIT_PAGER='wc > GIT_PAGER_used' &&
export GIT_PAGER &&
$full_command &&
@@ -326,4 +326,14 @@ test_core_pager_overrides expect_success 'git rev-list HEAD'
test_core_pager_subdir expect_success 'git rev-list HEAD'
test_GIT_PAGER_overrides expect_success 'git rev-list HEAD'
+test_doesnt_paginate expect_success 'git config -l'
+test_expect_success "set up 'git config' to use a pager" '
+ git config pager.config true
+'
+test_default_pager expect_success 'git config -l'
+test_PAGER_overrides expect_success 'git config -l'
+test_core_pager_overrides expect_success 'git config -l'
+test_core_pager_subdir expect_success 'git config -l'
+test_GIT_PAGER_overrides expect_success 'git config -l'
+
test_done
--
1.7.0.4
next prev parent reply other threads:[~2010-04-14 2:23 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-13 2:11 [PATCH/RFC 0/9] Setup cleanup, chapter one Jonathan Nieder
2010-04-13 2:13 ` [PATCH 1/9] t7006: GIT_DIR/config should be honored in subdirs of toplevel Jonathan Nieder
2010-04-14 20:50 ` Junio C Hamano
2010-04-15 0:38 ` [PATCH] t7006: guard cleanup with test_expect_success Jonathan Nieder
2010-04-15 0:56 ` Junio C Hamano
2010-04-15 1:27 ` Jonathan Nieder
2010-04-13 2:17 ` [PATCH 2/9] t7006: test pager configuration for several git commands Jonathan Nieder
2010-04-13 6:34 ` Johannes Sixt
2010-04-13 22:07 ` Jonathan Nieder
2010-04-14 1:26 ` [PATCH 2/9 v2] " Jonathan Nieder
2010-04-13 2:24 ` [PATCH 3/9] builtins: do not commit pager choice early Jonathan Nieder
2010-04-14 2:17 ` [PATCH 3/9 v2] " Jonathan Nieder
2010-04-13 2:25 ` [PATCH 4/9] t7006: test pager.<cmd> configuration Jonathan Nieder
2010-04-14 2:19 ` [PATCH 4/9 v2] " Jonathan Nieder
2010-04-13 2:27 ` [PATCH 5/9] builtin: introduce startup_info struct Jonathan Nieder
2010-04-13 2:28 ` [PATCH 6/9] builtin: remember whether repository was found Jonathan Nieder
2010-04-13 2:29 ` [PATCH 7/9] builtin: Support RUN_SETUP_GENTLY to set up repository early if found Jonathan Nieder
2010-04-13 2:30 ` [PATCH 8/9] builtin: check pager.<cmd> configuration if RUN_SETUP_GENTLY is used Jonathan Nieder
2010-04-13 5:29 ` Nguyen Thai Ngoc Duy
2010-04-14 4:38 ` Jonathan Nieder
2010-04-13 10:12 ` Nguyen Thai Ngoc Duy
2010-04-14 5:06 ` Jonathan Nieder
2010-04-15 8:33 ` Nguyen Thai Ngoc Duy
[not found] ` <20100415084925.GA14660@progeny.tock>
2010-04-15 17:43 ` Nguyen Thai Ngoc Duy
2010-04-13 2:31 ` [PATCH 9/9] config: run setup before commiting pager choice Jonathan Nieder
2010-04-14 2:23 ` Jonathan Nieder [this message]
2010-04-13 3:08 ` [RFC/PATCH 00/46] nd/setup remainder for convenient reference Jonathan Nieder
2010-04-14 7:59 ` Nguyen Thai Ngoc Duy
2010-04-14 20:54 ` [PATCH/RFC 0/9] Setup cleanup, chapter one Junio C Hamano
2010-04-15 0:05 ` Jonathan Nieder
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=20100414022315.GC22766@progeny.tock \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
/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.