From: Thomas Gummerer <t.gummerer@gmail.com>
To: Duy Nguyen <pclouds@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
Junio C Hamano <gitster@pobox.com>,
Elijah Newren <newren@gmail.com>
Subject: Re: [PATCH 5/8] checkout: introduce --{,no-}overlay option
Date: Tue, 11 Dec 2018 22:42:39 +0000 [thread overview]
Message-ID: <20181211224239.GV4883@hank.intra.tgummerer.com> (raw)
In-Reply-To: <CACsJy8BWZyFWZ70y4beCEYvjbc2+X-2K+gOiY+=toK0y3xYzKw@mail.gmail.com>
On 12/10, Duy Nguyen wrote:
> On Sun, Dec 9, 2018 at 9:05 PM Thomas Gummerer <t.gummerer@gmail.com> wrote:
> > @@ -302,15 +310,29 @@ static int checkout_paths(const struct checkout_opts *opts,
> > ce->ce_flags &= ~CE_MATCHED;
> > if (!opts->ignore_skipworktree && ce_skip_worktree(ce))
> > continue;
> > - if (opts->source_tree && !(ce->ce_flags & CE_UPDATE))
> > - /*
> > - * "git checkout tree-ish -- path", but this entry
> > - * is in the original index; it will not be checked
> > - * out to the working tree and it does not matter
> > - * if pathspec matched this entry. We will not do
> > - * anything to this entry at all.
> > - */
> > - continue;
> > + if (opts->source_tree && !(ce->ce_flags & CE_UPDATE)) {
> > + if (!opts->overlay_mode &&
> > + ce_path_match(&the_index, ce, &opts->pathspec, ps_matched)) {
> > + /*
> > + * "git checkout --no-overlay <tree-ish> -- path",
> > + * and the path is not in tree-ish, but is in
> > + * the current index, which means that it should
> > + * be removed.
> > + */
> > + ce->ce_flags |= CE_MATCHED | CE_REMOVE | CE_WT_REMOVE;
> > + continue;
> > + } else {
>
> In non-overlay mode but when pathspec does not match, we come here too.
>
> > + /*
> > + * "git checkout tree-ish -- path", but this
> > + * entry is in the original index; it will not
>
> I think the missing key point in this comment block is "..is in the
> original index _and it's not in tree-ish_". In non-overlay mode, if
> pathspec does not match then it's safe to ignore too. But this logic
> starts too get to complex and hurt my brain.
Yes, that would make it a bit easier to read. I took a while to try
and refactor this to make it easier to read, but couldn't come up with
anything much better unfortunately. I'll have another stab at
simplifying the logic a bit for v2.
> > + * be checked out to the working tree and it
> > + * does not matter if pathspec matched this
> > + * entry. We will not do anything to this entry
> > + * at all.
> > + */
> > + continue;
> > + }
> > + }
> > /*
> > * Either this entry came from the tree-ish we are
> > * checking the paths out of, or we are checking out
>
> > @@ -1266,6 +1299,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
> > "checkout", "control recursive updating of submodules",
> > PARSE_OPT_OPTARG, option_parse_recurse_submodules_worktree_updater },
> > OPT_BOOL(0, "progress", &opts.show_progress, N_("force progress reporting")),
> > + OPT_BOOL(0, "overlay", &opts.overlay_mode, N_("use overlay mode")),
>
> maybe add " (default)" to the help string.
Makes sense, will add.
> > OPT_END(),
> > };
> >
> --
> Duy
next prev parent reply other threads:[~2018-12-11 22:42 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-09 20:04 [PATCH 0/8] introduce no-overlay and cached mode in git checkout Thomas Gummerer
2018-12-09 20:04 ` [PATCH 1/8] move worktree tests to t24* Thomas Gummerer
2018-12-10 3:48 ` Junio C Hamano
2018-12-10 15:32 ` Duy Nguyen
2018-12-11 21:50 ` Thomas Gummerer
2018-12-12 13:26 ` Eric Sunshine
2018-12-12 17:07 ` Duy Nguyen
2018-12-09 20:04 ` [PATCH 2/8] entry: factor out unlink_entry function Thomas Gummerer
2018-12-10 15:49 ` Duy Nguyen
2018-12-10 17:23 ` Elijah Newren
2018-12-10 17:27 ` Duy Nguyen
2018-12-11 2:23 ` Junio C Hamano
2018-12-20 13:36 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 3/8] entry: support CE_WT_REMOVE flag in checkout_entry Thomas Gummerer
2018-12-10 15:58 ` Duy Nguyen
2018-12-11 2:28 ` Junio C Hamano
2018-12-12 6:16 ` Duy Nguyen
2018-12-12 7:36 ` Junio C Hamano
2018-12-10 17:49 ` Elijah Newren
2018-12-11 22:00 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 4/8] read-cache: add invalidate parameter to remove_marked_cache_entries Thomas Gummerer
2018-12-10 16:08 ` Duy Nguyen
2018-12-10 18:09 ` Elijah Newren
2018-12-10 18:19 ` Duy Nguyen
2018-12-10 18:25 ` Elijah Newren
2018-12-10 18:33 ` Duy Nguyen
2018-12-10 18:47 ` Elijah Newren
2018-12-11 21:59 ` Thomas Gummerer
2018-12-11 2:42 ` Junio C Hamano
2018-12-09 20:04 ` [PATCH 5/8] checkout: introduce --{,no-}overlay option Thomas Gummerer
2018-12-10 16:42 ` Duy Nguyen
2018-12-11 22:42 ` Thomas Gummerer [this message]
2018-12-10 18:19 ` Elijah Newren
2018-12-11 3:07 ` Junio C Hamano
2018-12-11 6:04 ` Elijah Newren
2018-12-11 22:07 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 6/8] checkout: add --cached option Thomas Gummerer
2018-12-10 16:49 ` Duy Nguyen
2018-12-11 3:13 ` Junio C Hamano
2018-12-11 6:12 ` Elijah Newren
2018-12-11 19:23 ` Duy Nguyen
2019-01-31 5:54 ` Duy Nguyen
2019-01-31 19:05 ` Junio C Hamano
2019-02-01 6:48 ` Duy Nguyen
2019-02-01 17:57 ` Junio C Hamano
2019-02-02 10:57 ` Duy Nguyen
2019-02-19 4:20 ` Duy Nguyen
2019-02-19 14:42 ` Elijah Newren
2019-02-19 14:57 ` Duy Nguyen
2019-02-19 19:07 ` Junio C Hamano
2019-02-19 22:24 ` Elijah Newren
2019-02-19 22:36 ` Junio C Hamano
2019-02-19 23:00 ` Elijah Newren
2019-02-20 1:53 ` Duy Nguyen
2019-02-19 19:02 ` Junio C Hamano
2019-02-19 19:10 ` Junio C Hamano
2019-02-19 22:04 ` Elijah Newren
2019-02-19 22:29 ` Junio C Hamano
2019-02-20 2:32 ` Duy Nguyen
2019-02-20 3:52 ` Duy Nguyen
2019-02-20 2:19 ` Duy Nguyen
2019-02-19 22:13 ` Elijah Newren
2019-02-19 22:33 ` Junio C Hamano
2018-12-10 18:42 ` Elijah Newren
2018-12-11 22:18 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 7/8] checkout: allow ignoring unmatched pathspec Thomas Gummerer
2018-12-10 16:51 ` Duy Nguyen
2018-12-11 22:23 ` Thomas Gummerer
2018-12-10 20:25 ` Elijah Newren
2018-12-11 22:36 ` Thomas Gummerer
2018-12-09 20:04 ` [PATCH 8/8] stash: use git checkout --no-overlay Thomas Gummerer
2018-12-10 20:26 ` Elijah Newren
2018-12-10 3:47 ` [PATCH 0/8] introduce no-overlay and cached mode in git checkout Junio C Hamano
2018-12-20 8:43 ` Thomas Gummerer
2018-12-10 17:06 ` Duy Nguyen
2018-12-10 17:18 ` Elijah Newren
2018-12-10 18:37 ` Duy Nguyen
2018-12-11 22:52 ` Thomas Gummerer
2018-12-12 7:28 ` Junio C Hamano
2018-12-20 13:48 ` [PATCH v2 0/8] introduce no-overlay " Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 1/8] move worktree tests to t24* Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 2/8] entry: factor out unlink_entry function Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 3/8] entry: support CE_WT_REMOVE flag in checkout_entry Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 4/8] read-cache: add invalidate parameter to remove_marked_cache_entries Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 5/8] checkout: clarify comment Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 6/8] checkout: factor out mark_cache_entry_for_checkout function Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 7/8] checkout: introduce --{,no-}overlay option Thomas Gummerer
2018-12-23 8:05 ` Duy Nguyen
2018-12-23 9:44 ` Eric Sunshine
2019-01-06 18:18 ` Thomas Gummerer
2018-12-20 13:48 ` [PATCH v2 8/8] checkout: introduce checkout.overlayMode config Thomas Gummerer
2019-01-02 23:39 ` Junio C Hamano
2019-01-06 18:32 ` Thomas Gummerer
2019-01-07 17:00 ` Junio C Hamano
2019-01-08 21:52 ` [PATCH v3 0/8] introduce no-overlay mode in git checkout Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 1/8] move worktree tests to t24* Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 2/8] entry: factor out unlink_entry function Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 3/8] entry: support CE_WT_REMOVE flag in checkout_entry Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 4/8] read-cache: add invalidate parameter to remove_marked_cache_entries Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 5/8] checkout: clarify comment Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 6/8] checkout: factor out mark_cache_entry_for_checkout function Thomas Gummerer
2019-01-08 21:52 ` [PATCH v3 7/8] checkout: introduce --{,no-}overlay option Thomas Gummerer
2019-01-22 23:53 ` Jonathan Nieder
2019-01-23 19:05 ` Junio C Hamano
2019-01-23 20:21 ` Thomas Gummerer
2019-01-23 20:47 ` Jonathan Nieder
2019-01-24 22:08 ` Thomas Gummerer
2019-01-23 21:08 ` Junio C Hamano
2019-01-24 1:12 ` Jonathan Nieder
2019-01-24 22:02 ` Thomas Gummerer
2019-01-24 23:02 ` Junio C Hamano
2019-01-25 2:26 ` Jonathan Nieder
2019-01-25 9:24 ` Duy Nguyen
2019-02-09 18:54 ` Philip Oakley
2019-01-08 21:52 ` [PATCH v3 8/8] checkout: introduce checkout.overlayMode config 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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181211224239.GV4883@hank.intra.tgummerer.com \
--to=t.gummerer@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=pclouds@gmail.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).