From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Karthik Nayak <karthik.188@gmail.com>,
git@vger.kernel.org, toon@iotcl.com
Subject: Re: [PATCH 2/2] attr: add flag `-r|--revisions` to work with revisions
Date: Wed, 07 Dec 2022 12:38:23 +0100 [thread overview]
Message-ID: <221207.86lenja0zi.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <xmqqedtc842m.fsf@gitster.g>
On Wed, Dec 07 2022, Junio C Hamano wrote:
> Karthik Nayak <karthik.188@gmail.com> writes:
>
>> Add a new flag `--revision`/`-r` which will allow it work with
>> revisions. This command will now, instead of checking the files/index,
>> try and receive the blob for the given attribute file against the
>> provided revision. The flag overrides checking against the index and
>> filesystem and also works with bare repositories.
>
> As "check-attr" was not invented as a user-facing subcommand but was
> a hack for debugging, I would have minded this change, but these
> days people seem to treat it as if it is just one of the proper
> plumbing commands, the new command line convention bothers me a
> bit. No other command uses --<anything> to signal that what comes
> after it is a rev.
>
> But I do not think of a better alternative without making the
> command line ambiguous, so I'll stop at raising a concern, so that
> others who may be better at UI can come up with one.
I don't really like it either, but maybe we've backed ourselves into a
corner here.
But let's look at that. So the command takes:
git check-attr <attr>... -- <path>...
Or:
echo "<path>" |
git check-attr --stdin <attr>...
So we'd want to specify a <revision>, without making the <attr> or
<path> ambiguous.
Now, when we map the attributes we go through attr_name_valid(), which
checks that the attribute names are valid. A commentthere says:
* Attribute name cannot begin with '-' and must consist of
* characters from [-A-Za-z0-9_.].
So can't we instead accept:
git check-attr [<rev>:]<attr>... -- <path>...
I.e.:
git check-attr HEAD~:foo -- path
And it wouldn't be ambiguous because attribute names can't contain ":"?
This would be consistent with e.g. "git show" and "git cat-file", just
with "<attr>" instead of the "<path>".
This would also mean that we'd support:
git check-attr HEAD:foo HEAD~:bar HEAD~2:baz
etc., i.e. the ability to support multiple revision/attribute
pairs. Skimming the currently proposed code there seems to be no good
reason not to support that (we just need to look up other blobs), and it
would allow querying those without spawning N processes.
next prev parent reply other threads:[~2022-12-07 11:48 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-06 10:37 [PATCH 0/2] check-attr: add support to work with revisions Karthik Nayak
2022-12-06 10:37 ` [PATCH 1/2] t0003: move setup for `--all` into new block Karthik Nayak
2022-12-06 10:37 ` [PATCH 2/2] attr: add flag `-r|--revisions` to work with revisions Karthik Nayak
2022-12-06 11:27 ` Ævar Arnfjörð Bjarmason
2022-12-06 13:06 ` Karthik Nayak
2022-12-07 0:12 ` Junio C Hamano
2022-12-07 1:10 ` Eric Sunshine
2022-12-07 11:05 ` Karthik Nayak
2022-12-07 11:38 ` Ævar Arnfjörð Bjarmason [this message]
2022-12-07 12:33 ` Karthik Nayak
2022-12-07 11:40 ` Karthik Nayak
2022-12-07 11:53 ` Ævar Arnfjörð Bjarmason
2022-12-07 12:29 ` Karthik Nayak
2022-12-06 11:20 ` [PATCH 0/2] check-attr: add support " Philip Oakley
2022-12-06 13:00 ` Karthik Nayak
2022-12-07 1:09 ` Taylor Blau
2022-12-07 2:11 ` brian m. carlson
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=221207.86lenja0zi.gmgdl@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.com \
--cc=toon@iotcl.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 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).