All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
	"Jeff King" <peff@peff.net>
Subject: [PATCH 05/12] grep: run setup_git_directory_gently() sooner
Date: Thu, 5 Aug 2010 22:06:39 -0500	[thread overview]
Message-ID: <20100806030637.GI22369@burratino> (raw)
In-Reply-To: <20100806023529.GB22369@burratino>

From: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>

git grep already runs a repository search unconditionally,
even when the --no-index option is supplied; running such a
search earlier is not very risky.

Just like with shortlog, without this change, the
“[pager] grep” configuration is not respected at all.

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>
---
Aside from rewriting the commit message and adding tests, this
drops the interesting

 -		/* die the same way as if we did it at the beginning */
 -		setup_git_directory();
 +		die("No git repository found");

hunk.  That change might be a good idea but it does not fit the
theme of this chapter.

 builtin/grep.c   |    6 ++----
 git.c            |    2 +-
 t/t7006-pager.sh |   13 +++++++++++++
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/builtin/grep.c b/builtin/grep.c
index d0a73da..cd44926 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -791,7 +791,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 	const char **paths = NULL;
 	int i;
 	int dummy;
-	int nongit = 0, use_index = 1;
+	int use_index = 1;
 	struct option options[] = {
 		OPT_BOOLEAN(0, "cached", &cached,
 			"search in index instead of in the work tree"),
@@ -879,8 +879,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 		OPT_END()
 	};
 
-	prefix = setup_git_directory_gently(&nongit);
-
 	/*
 	 * 'git grep -h', unlike 'git grep -h <pattern>', is a request
 	 * to show usage information and exit.
@@ -925,7 +923,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 			     PARSE_OPT_STOP_AT_NON_OPTION |
 			     PARSE_OPT_NO_INTERNAL_HELP);
 
-	if (use_index && nongit)
+	if (use_index && !startup_info->have_repository)
 		/* die the same way as if we did it at the beginning */
 		setup_git_directory();
 
diff --git a/git.c b/git.c
index b821058..0240179 100644
--- a/git.c
+++ b/git.c
@@ -336,7 +336,7 @@ static void handle_internal_command(int argc, const char **argv)
 		{ "fsck-objects", cmd_fsck, RUN_SETUP },
 		{ "gc", cmd_gc, RUN_SETUP },
 		{ "get-tar-commit-id", cmd_get_tar_commit_id },
-		{ "grep", cmd_grep, USE_PAGER },
+		{ "grep", cmd_grep, RUN_SETUP_GENTLY | USE_PAGER },
 		{ "hash-object", cmd_hash_object },
 		{ "help", cmd_help },
 		{ "index-pack", cmd_index_pack },
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 084dfdb..fd7f77b 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -105,6 +105,19 @@ test_expect_success TTY 'no pager with --no-pager' '
 	! test -e paginated.out
 '
 
+test_expect_success TTY 'configuration can disable pager' '
+	rm -f paginated.out &&
+	test_might_fail git config --unset pager.grep &&
+	test_terminal git grep initial &&
+	test -e paginated.out &&
+
+	rm -f paginated.out &&
+	git config pager.grep false &&
+	test_when_finished "git config --unset pager.grep" &&
+	test_terminal git grep initial &&
+	! test -e paginated.out
+'
+
 # A colored commit log will begin with an appropriate ANSI escape
 # for the first color; the text "commit" comes later.
 colorful() {
-- 
1.7.2.1.544.ga752d.dirty

  parent reply	other threads:[~2010-08-06  3:08 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-26 19:22 [PATCH 0/4] git --paginate: do not commit pager choice too early Jonathan Nieder
2010-06-26 19:23 ` [PATCH 1/4] t7006 (pager): introduce helper for parameterized tests Jonathan Nieder
2010-06-26 19:24 ` [PATCH 2/4] t7006: test pager configuration for several git commands Jonathan Nieder
2010-06-26 19:28   ` Jonathan Nieder
2010-06-26 19:25 ` [PATCH 3/4] tests: local config file should be honored from subdirs of toplevel Jonathan Nieder
2010-06-26 19:26 ` [PATCH 4/4] git --paginate: do not commit pager choice too early Jonathan Nieder
2010-06-28  9:40 ` [PATCH 0/4] " Jeff King
2010-06-28 10:13   ` Jonathan Nieder
2010-06-28 10:22     ` Jeff King
2010-06-28 12:45       ` Nguyen Thai Ngoc Duy
2010-06-29  5:42 ` Junio C Hamano
2010-07-14 20:36   ` Junio C Hamano
2010-07-14 21:30     ` Jonathan Nieder
2010-07-14 22:55     ` [PATCH] git --paginate: paginate external commands again Jonathan Nieder
2010-07-18 12:27     ` [PATCH 0/4] git --paginate: do not commit pager choice too early Nguyen Thai Ngoc Duy
2010-08-06  2:35     ` [PATCH jn/paginate-fix 0/12] " Jonathan Nieder
2010-08-06  2:40       ` [PATCH 01/12] git wrapper: introduce startup_info struct Jonathan Nieder
2010-08-06  2:46       ` [PATCH 02/12] setup: remember whether repository was found Jonathan Nieder
2010-08-06  2:52       ` [PATCH 03/12] git wrapper: allow setup_git_directory_gently() be called earlier Jonathan Nieder
2010-08-06  3:01       ` [PATCH 04/12] shortlog: run setup_git_directory_gently() sooner Jonathan Nieder
2010-08-06  3:06       ` Jonathan Nieder [this message]
2010-08-06  3:08       ` [PATCH 06/12] apply: " Jonathan Nieder
2010-08-15 20:13         ` Ævar Arnfjörð Bjarmason
2010-08-15 22:34           ` Nguyen Thai Ngoc Duy
2010-08-15 23:11             ` Jonathan Nieder
2010-08-16  0:36         ` [PATCH 06/12 v2] " Nguyễn Thái Ngọc Duy
2010-08-16  3:39           ` Junio C Hamano
2010-08-06  3:12       ` [PATCH 07/12] bundle: " Jonathan Nieder
2010-08-16  7:21         ` Thomas Rast
2010-08-16  8:07           ` Jonathan Nieder
2010-08-16  8:11             ` [PATCH 2/2] t7006 (pager): add missing TTY prerequisite Jonathan Nieder
2010-08-16 16:41               ` Junio C Hamano
2010-08-06  3:15       ` [PATCH 08/12] config: run setup_git_directory_gently() sooner Jonathan Nieder
2010-08-06  3:18       ` [PATCH 09/12] index-pack: " Jonathan Nieder
2010-08-06  3:20       ` [PATCH 10/12] ls-remote: " Jonathan Nieder
2010-08-06  3:21       ` [PATCH 11/12] var: " Jonathan Nieder
2010-08-06  3:27       ` [PATCH 12/12] merge-file: " Jonathan Nieder
2010-08-06  3:34       ` [PATCH master 0/2] fix "check-ref-format --branch" from subdir of toplevel Jonathan Nieder
2010-08-06  3:36         ` [PATCH 1/2] check-ref-format: handle subcommands in separate functions Jonathan Nieder
2010-08-06  3:39         ` [PATCH 2/2] Allow "check-ref-format --branch" from subdirectory Jonathan Nieder
2010-08-06 19:42           ` Junio C Hamano
2010-08-06  4:26       ` [PATCH jn/paginate-fix 0/12] Re: git --paginate: do not commit pager choice too early Nguyen Thai Ngoc Duy

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=20100806030637.GI22369@burratino \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --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.