From: Brandon Williams <bmwill@google.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH 4/9] read_early_config(): optionally return the worktree's top-level directory
Date: Thu, 8 Jun 2017 07:46:28 -0700 [thread overview]
Message-ID: <20170608144628.GH110638@google.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1.1706081204330.171564@virtualbox>
On 06/08, Johannes Schindelin wrote:
> Hi Brandon,
>
> On Wed, 7 Jun 2017, Brandon Williams wrote:
>
> > On 06/07, Johannes Schindelin wrote:
> > > @@ -1668,7 +1668,7 @@ void read_early_config(config_fn_t cb, void *data)
> > > * notably, the current working directory is still the same after the
> > > * call).
> > > */
> > > - else if (discover_git_directory(&buf))
> > > + else if (discover_git_directory(&buf, worktree_dir))
> > > opts.git_dir = buf.buf;
> >
> > It feels kind of weird to get back worktree info after calling
> > read_early_config but I understand why you need to get it.
>
> Yeah. It is awkward. Required for backwards-compatibility, though (and it
> is hard to explain *when* it is needed, and even harder under what
> circumstances it is *not* needed even if there is a worktre).
>
> > One thing to consider is the 'if' statement not shown here since you
> > aren't adding any worktree information if that branch is taken.
>
> Right. For lurkers, that `if` statement reads thusly:
>
> if (have_git_dir())
> opts.git_dir = get_git_dir();
>
> > Maybe we can drop the first if statement all together as
> > 'read_early_config' is used before setup is run and it should really
> > only be triggered when setup has been run.
>
> The `read_early_config()` function is *sometimes* used *after* setup has
> run. Look at `run_builtin()` in git.c:
>
> if (p->option & RUN_SETUP)
> prefix = setup_git_directory();
> else if (p->option & RUN_SETUP_GENTLY) {
> int nongit_ok;
> prefix = setup_git_directory_gently(&nongit_ok);
> }
>
> if (use_pager == -1 && p->option & (RUN_SETUP | RUN_SETUP_GENTLY))
> use_pager = check_pager_config(p->cmd);
>
Ah, ok so my comment was incorrect, thanks for pointing this out.
> For builtins having either the RUN_SETUP or the RUN_SETUP_GENTLY flag, we
> do not need to re-discover the .git/ directory at all when checking the
> pager config.
>
> Back to the worktree_dir variable.
>
> I think part of the confusion here is that it may be left alone even when
> there is a worktree. For example, if we are already in the top-level
> directory. Or if the worktree somehow points to a different directory than
> the one containing the .git/ directory.
>
> Therefore, I renamed this variable to `cdup_dir` to reflect the fact that
> it is only touched if Git determines that it is in a subdirectory of the
> directory containing the .git/ directory.
Ok, maybe I'm just not following but just from reading the variable name I can't
really understand what 'cdup_dir' means.
>
> Ciao,
> Dscho
--
Brandon Williams
next prev parent reply other threads:[~2017-06-08 14:46 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-07 16:06 [PATCH 0/9] Avoid problem where git_dir is set after alias expansion Johannes Schindelin
2017-06-07 16:06 ` [PATCH 1/9] discover_git_directory(): avoid setting invalid git_dir Johannes Schindelin
2017-06-07 17:45 ` Brandon Williams
2017-06-08 10:00 ` Johannes Schindelin
2017-06-07 16:06 ` [PATCH 2/9] config: report correct line number upon error Johannes Schindelin
2017-06-09 17:01 ` Junio C Hamano
2017-06-07 16:06 ` [PATCH 3/9] help: use early config when autocorrecting aliases Johannes Schindelin
2017-06-07 17:51 ` Brandon Williams
2017-06-08 10:02 ` Johannes Schindelin
2017-06-09 17:05 ` Junio C Hamano
2017-06-07 16:06 ` [PATCH 4/9] read_early_config(): optionally return the worktree's top-level directory Johannes Schindelin
2017-06-07 18:13 ` Brandon Williams
2017-06-08 10:20 ` Johannes Schindelin
2017-06-08 14:46 ` Brandon Williams [this message]
2017-06-08 15:30 ` Johannes Schindelin
2017-06-08 16:32 ` Brandon Williams
2017-06-08 18:52 ` Johannes Schindelin
2017-06-08 18:54 ` Brandon Williams
2017-06-07 16:06 ` [PATCH 5/9] t1308: relax the test verifying that empty alias values are disallowed Johannes Schindelin
2017-06-07 18:15 ` Brandon Williams
2017-06-08 10:22 ` Johannes Schindelin
2017-06-08 14:47 ` Brandon Williams
2017-06-10 1:28 ` Junio C Hamano
2017-06-07 16:06 ` [PATCH 6/9] t7006: demonstrate a problem with aliases in subdirectories Johannes Schindelin
2017-06-07 16:06 ` [PATCH 7/9] alias_lookup(): optionally return top-level directory Johannes Schindelin
2017-06-07 16:07 ` [PATCH 8/9] Use the early config machinery to expand aliases Johannes Schindelin
2017-06-07 18:26 ` Brandon Williams
2017-06-08 10:25 ` Johannes Schindelin
2017-06-08 14:51 ` Brandon Williams
2017-06-10 1:33 ` Junio C Hamano
2017-06-07 16:09 ` [PATCH 0/9] Avoid problem where git_dir is set after alias expansion Johannes Schindelin
2017-06-07 18:30 ` Brandon Williams
2017-06-08 10:27 ` Johannes Schindelin
2017-06-08 16:33 ` Brandon Williams
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=20170608144628.GH110638@google.com \
--to=bmwill@google.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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.