All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gummerer <t.gummerer@gmail.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, pclouds@gmail.com, sunshine@sunshineco.com,
	gitster@pobox.com
Subject: Re: [PATCH v3 2/2] builtin/grep: add grep.fallbackToNoIndex config
Date: Mon, 11 Jan 2016 23:35:24 +0100	[thread overview]
Message-ID: <20160111223524.GF10612@hank> (raw)
In-Reply-To: <20160111214846.GC21131@sigill.intra.peff.net>

On 01/11, Jeff King wrote:
> On Mon, Jan 11, 2016 at 10:26:20PM +0100, Thomas Gummerer wrote:
>
> > diff --git a/builtin/grep.c b/builtin/grep.c
> > index 4229cae..5efe9bb 100644
> > --- a/builtin/grep.c
> > +++ b/builtin/grep.c
> > @@ -755,9 +755,20 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
> >  			     PARSE_OPT_STOP_AT_NON_OPTION);
> >  	grep_commit_pattern_type(pattern_type_arg, &opt);
> >
> > -	if (use_index && !startup_info->have_repository)
> > -		/* die the same way as if we did it at the beginning */
> > -		setup_git_directory();
> > +	if (use_index && !startup_info->have_repository) {
> > +		int fallback = 0;
> > +		git_config_get_bool("grep.fallbacktonoindex", &fallback);
> > +		if (fallback) {
> > +			int nongit = 0;
> > +
> > +			setup_git_directory_gently(&nongit);
> > +			if (nongit)
> > +				use_index = 0;
> > +		} else {
> > +			/* die the same way as if we did it at the beginning */
> > +			setup_git_directory();
> > +		}
> > +	}
>
> Hmm. We used to have problems accessing config before calling
> setup_git_directory(). I am not sure if that is still the case, though.

A few lines earlier, git_config() is called, so I guess we're fine
here.

> I guess the startup sequence is muddied here, though. cmd_grep() is
> marked as RUN_SETUP_GENTLY, so we would have already run setup, and here
> we are following the "we are not in a repository" code path (i.e., we
> saw "!startup_info->have_repository").
>
> And the existing setup_git_directory() is just there to die(), as the
> comment explains. So what is the new setup_git_directory_gently() doing?
> We know we've already done setup, and that we're not in a git repo,
> right? Shouldn't we just be able to set use_index to 0 and keep going?
> Under what circumstances would it _not_ return "nongit == 1"?

I don't think it ever does return nongit == 1.  I'm not sure why I
thought that could be the case, will fix in the re-roll.

> > @@ -874,12 +885,14 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
> >  		setup_pager();
> >
> >  	if (!use_index && (untracked || cached))
> > -		die(_("--cached or --untracked cannot be used with --no-index."));
> > +		die(_("--cached or --untracked cannot be used with --no-index "
> > +		      "or outside of a git repository"));
>
> I'm lukewarm on this (and the other) change. What you've written is
> technically correct, but it's getting rather verbose. We've presented
> the option already as "turn on --no-index by default outside a
> repository", so I'm not sure we need to clarify it here. Since it's a
> feature people must turn on manually, presumably they would know that.

Yes, I think I agree with you.  The original error message should give
enough information for users.  Will revert the change in the re-roll.

> I don't know, maybe it would help somebody. I'm not strongly opposed.
>
> -Peff

  reply	other threads:[~2016-01-11 22:35 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-10 14:19 [PATCH 0/3] Implicitly use --no-index if git grep is used outside of repo Thomas Gummerer
2016-01-10 14:19 ` [PATCH 1/3] t7810: correct --no-index test Thomas Gummerer
2016-01-10 14:19 ` [PATCH 2/3] builtin/grep: rename use_index to no_index Thomas Gummerer
2016-01-11 17:33   ` Junio C Hamano
2016-01-10 14:19 ` [PATCH 3/3] builtin/grep: allow implicit --no-index Thomas Gummerer
2016-01-11  0:50   ` Duy Nguyen
2016-01-11 11:10     ` Thomas Gummerer
2016-01-11 17:26       ` Junio C Hamano
2016-01-11 17:48         ` Thomas Gummerer
2016-01-11 17:59           ` Jeff King
2016-01-11 18:37             ` Junio C Hamano
2016-01-11  1:54   ` Eric Sunshine
2016-01-11 11:29     ` Thomas Gummerer
2016-01-11 17:30   ` Junio C Hamano
2016-01-11 19:28     ` Thomas Gummerer
2016-01-11 19:35       ` Junio C Hamano
2016-01-11 19:44         ` Junio C Hamano
2016-01-11 21:01           ` Thomas Gummerer
2016-01-11 17:00 ` [PATCH v2 0/3] Introduce a --use-index command line argument in git grep Thomas Gummerer
2016-01-11 17:00   ` [PATCH v2 1/3] t7810: correct --no-index test Thomas Gummerer
2016-01-11 17:00   ` [PATCH v2 2/3] builtin/grep: rename use_index to no_index Thomas Gummerer
2016-01-11 17:00   ` [PATCH v2 3/3] builtin/grep: introduce --use-index argument Thomas Gummerer
2016-01-11 21:26 ` [PATCH v3 0/2] grep: add fallbackToNoIndex config option Thomas Gummerer
2016-01-11 21:26   ` [PATCH v3 1/2] t7810: correct --no-index test Thomas Gummerer
2016-01-11 21:26   ` [PATCH v3 2/2] builtin/grep: add grep.fallbackToNoIndex config Thomas Gummerer
2016-01-11 21:48     ` Jeff King
2016-01-11 22:35       ` Thomas Gummerer [this message]
2016-01-12 10:40   ` [PATCH v4 0/2] grep: add fallbackToNoIndex config option Thomas Gummerer
2016-01-12 10:40     ` [PATCH v4 1/2] t7810: correct --no-index test Thomas Gummerer
2016-01-12 10:40     ` [PATCH v4 2/2] builtin/grep: add grep.fallbackToNoIndex config Thomas Gummerer
2016-01-12 12:11       ` Jeff King
2016-01-12 15:50         ` Thomas Gummerer

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=20160111223524.GF10612@hank \
    --to=t.gummerer@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    --cc=sunshine@sunshineco.com \
    /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.