From: Jonathan Nieder <jrnieder@gmail.com>
To: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
Cc: git <git@vger.kernel.org>, Jeff King <peff@peff.net>,
Junio C Hamano <gitster@pobox.com>, Johannes Sixt <j6t@kdbg.org>
Subject: Re: [PATCH 8/9] builtin: check pager.<cmd> configuration if RUN_SETUP_GENTLY is used
Date: Tue, 13 Apr 2010 23:38:44 -0500 [thread overview]
Message-ID: <20100414043844.GA28864@progeny.tock> (raw)
In-Reply-To: <u2ufcaeb9bf1004122229l72de0e55i8dbd993d6cb16d2b@mail.gmail.com>
Nguyen Thai Ngoc Duy wrote:
> 2010/4/13 Jonathan Nieder <jrnieder@gmail.com>:
>> @@ -251,7 +251,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
[...]
>> - if (use_pager == -1 && p->option & RUN_SETUP)
>> + if (use_pager == -1 && p->option & (RUN_SETUP | RUN_SETUP_GENTLY))
>> use_pager = check_pager_config(p->cmd);
>> if (use_pager == -1 && p->option & USE_PAGER)
>> use_pager = 1;
>
> This still leaves a chance of going wrong: when user explicitly gives
> "--paginate", use_pager will be 1, but commands like "git init" does
> not have RUN_SETUP*. So when setup_pager is called later on, it will
> mess things up.
I decided not to check_pager_config() unconditionally to avoid
breaking ‘git diff’ (especially ‘git diff --exit-code’). Maybe that
is too conservative; not sure. The commit message should be more
explicit, something like:
Eventually, all git commands should check their configuration at
start-up. For now, reading configuration before repository discovery
is dangerous because it could cause a pager.<cmd> setting from the
current repository to be neglected.
But for commands with RUN_SETUP or RUN_SETUP_GENTLY set, it is safe.
This will not affect commands like "git init" that cannot have
RUN_SETUP* set; they will have to be helped separately later. In
particular, commands such as "git diff" that use command-specific
options to decide whether to search for a repository and whether to
paginate output are outside the scope of this change.
Guiding principle: better to leave some bugs for later than risk
regressions.
> This could be solved completely (indeed I have a patch
> under testing), but it would require unset_git_directory(), making
> this series a bit longer :(
I agree; that’s the right way to do it. run_builtin() ought to be
relatively sure about whether a repo is going to be searched for. For
commands like diff and grep, I think it should be okay to search for a
repo unless --no-index is the first argument.
Thanks for your thoughtfulness.
Jonathan
next prev parent reply other threads:[~2010-04-14 4:38 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 [this message]
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 ` [PATCH 9/9 v2] " Jonathan Nieder
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=20100414043844.GA28864@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).