From: Junio C Hamano <gitster@pobox.com>
To: Joanna Wang <jojwang@google.com>
Cc: git@vger.kernel.org, Joanna Wang <jojwang@chromium.org>
Subject: Re: Supporting `git add -a <exclude submodules>`
Date: Tue, 17 Oct 2023 14:36:39 -0700 [thread overview]
Message-ID: <xmqqo7gxx76g.fsf@gitster.g> (raw)
In-Reply-To: <CAMmZTi-xOWxpzL1SvErgri0_gwvED5Vu2NfeGVcW7jCN8gyEDQ@mail.gmail.com> (Joanna Wang's message of "Tue, 17 Oct 2023 16:59:30 -0400")
Joanna Wang <jojwang@google.com> writes:
>> choose among attr:submodule, attr:type=<what>, attr:bits=<permbits>, decide what keyword to use
> Whatever we choose, do we want to block these keywords from being used
> by folks in their .gitattributes files?
> That would break any existing usage of the keywords. Is this a concern?
> Option A: To keep things working, we could add this support for attr,
> but then always prioritize whatever is set in .gitattributes. So this
> new behavior would only be triggered if the keywords (e.g.
> "submodule", "type", "bits") aren't set in .gitattributes (or w/e list
> of attributes are being read).
Without thinking things through, I think this sounds easier to
explain to the users. I have to wonder how one would implement such
override, though. Suppose we are doing attr:bits=160000, so we ask
git_check_attr() about "bits" attribute. In collect_some_attrs(), we
will have "bits" in the check[] array. We prepare the attr_stack
and fill(), which would go grab whatever is defined in the
attributes system. We'll lstat() or do the equivalent conversion
from the tree_entry.mode to permission bits only if the attributes
system has nothing to say for that "bits" attribute. I think a few
key things that needs to be thought out are:
(1) where in that callchain would we intercept and insert our own
"bits" value based on the filesystem property?
(2) does collect_some_attrs() or git_check_attr() leave enough
information in check[] to tell between [a] the attr stack had
no opinion on "bits" attribute and [b] the attr stack
explicitly said "bits" attribute is unspecified?
next prev parent reply other threads:[~2023-10-17 21:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-17 20:59 Supporting `git add -a <exclude submodules>` Joanna Wang
2023-10-17 21:36 ` Junio C Hamano [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-10-17 22:48 Joanna Wang
2023-10-17 23:02 ` Junio C Hamano
2023-09-28 17:06 Joanna Wang
2023-09-28 18:11 ` Junio C Hamano
2023-09-28 18:16 ` Junio C Hamano
2023-09-28 18:24 ` Junio C Hamano
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=xmqqo7gxx76g.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jojwang@chromium.org \
--cc=jojwang@google.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.