From: Junio C Hamano <gitster@pobox.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 2/5] refs: make `is_pseudoref_syntax()` stricter
Date: Fri, 19 Jan 2024 12:44:32 -0800 [thread overview]
Message-ID: <xmqqwms5hx3j.fsf@gitster.g> (raw)
In-Reply-To: <20240119142705.139374-3-karthik.188@gmail.com> (Karthik Nayak's message of "Fri, 19 Jan 2024 15:27:02 +0100")
Karthik Nayak <karthik.188@gmail.com> writes:
> Using this information we make the `is_pseudoref_syntax()` function
> stricter, by adding the check for "HEAD" suffix and for refs which don't
> end with the HEAD suffix, matching them with a predetermined list.
OK, so this partly answers my question on the previous step. Before
making it more strict, the function worked only on the "syntax", so
a random string that can be a pseudo ref passed the check.
But stepping back a bit, if we call this function is_pseudoref_syntax(),
wouldn't it be what we want to have anyway? You seem to want a
separate function called is_pseudoref() that rejects bogus uppercase
string "FOO_BAR" while accepting the known-good pseudoref you add
tests for, plus the ${FOO}_HEAD for any value of ${FOO} we currently
have and we may want to add in the future.
> int is_pseudoref_syntax(const char *refname)
> {
> + /* TODO: move these pseudorefs to have _HEAD suffix */
> + static const char *const irregular_pseudorefs[] = {
> + "BISECT_EXPECTED_REV",
> + "NOTES_MERGE_PARTIAL",
> + "NOTES_MERGE_REF",
> + "AUTO_MERGE"
> + };
> + size_t i;
> const char *c;
>
> for (c = refname; *c; c++) {
> @@ -837,10 +845,17 @@ int is_pseudoref_syntax(const char *refname)
> }
>
> /*
> - * HEAD is not a pseudoref, but it certainly uses the
> - * pseudoref syntax.
> + * Most pseudorefs end with _HEAD. HEAD itself is not a
> + * pseudoref, but it certainly uses the pseudoref syntax.
> */
> - return 1;
> + if (ends_with(refname, "HEAD"))
> + return 1;
I would imagine that at the final stage in which something like this
will be named is_pseudoref(), asking is_pseudoref("HEAD") would
return "No" (even though "is_pseudoref_syntax()", if the helper
function remains, may say "Yes" to "HEAD"). And this ends_with()
will use "_HEAD", instead of "HEAD". But I am reading ahead of
myself, so let's keep going.
> + for (i = 0; i < ARRAY_SIZE(irregular_pseudorefs); i++)
> + if (!strcmp(refname, irregular_pseudorefs[i]))
> + return 1;
> +
> + return 0;
> }
next prev parent reply other threads:[~2024-01-19 20:44 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-19 14:27 [PATCH 0/5] for-each-ref: print all refs on empty string pattern Karthik Nayak
2024-01-19 14:27 ` [PATCH 1/5] refs: expose `is_pseudoref_syntax()` Karthik Nayak
2024-01-19 20:37 ` Junio C Hamano
2024-01-22 15:40 ` Karthik Nayak
2024-01-19 14:27 ` [PATCH 2/5] refs: make `is_pseudoref_syntax()` stricter Karthik Nayak
2024-01-19 20:44 ` Junio C Hamano [this message]
2024-01-22 20:13 ` Phillip Wood
2024-01-22 20:22 ` Junio C Hamano
2024-01-23 11:03 ` Phillip Wood
2024-01-23 12:49 ` Karthik Nayak
2024-01-23 16:40 ` phillip.wood123
2024-01-23 17:46 ` Junio C Hamano
2024-01-23 17:38 ` Junio C Hamano
2024-01-23 11:16 ` Patrick Steinhardt
2024-01-23 16:30 ` Phillip Wood
2024-01-23 17:44 ` Junio C Hamano
2024-01-24 8:51 ` Patrick Steinhardt
2024-01-19 14:27 ` [PATCH 3/5] refs: extract out `loose_fill_ref_dir_regular_file()` Karthik Nayak
2024-01-19 14:27 ` [PATCH 4/5] refs: introduce `refs_for_each_all_refs()` Karthik Nayak
2024-01-19 20:57 ` Junio C Hamano
2024-01-22 15:48 ` Karthik Nayak
2024-01-22 17:45 ` Junio C Hamano
2024-01-19 14:27 ` [PATCH 5/5] for-each-ref: avoid filtering on empty pattern Karthik Nayak
2024-01-24 15:27 ` [PATCH v2 0/4] for-each-ref: print all refs on empty string pattern Karthik Nayak
2024-01-24 15:27 ` [PATCH v2 1/4] refs: introduce `is_pseudoref()` and `is_headref()` Karthik Nayak
2024-01-24 19:09 ` Junio C Hamano
2024-01-25 16:20 ` Karthik Nayak
2024-01-25 16:28 ` Junio C Hamano
2024-01-25 21:48 ` Karthik Nayak
2024-01-24 15:27 ` [PATCH v2 2/4] refs: extract out `loose_fill_ref_dir_regular_file()` Karthik Nayak
2024-01-24 15:27 ` [PATCH v2 3/4] refs: introduce `refs_for_each_all_refs()` Karthik Nayak
2024-01-24 15:27 ` [PATCH v2 4/4] for-each-ref: avoid filtering on empty pattern Karthik Nayak
2024-01-29 11:35 ` [PATCH v3 0/4] for-each-ref: print all refs on empty string pattern Karthik Nayak
2024-01-29 11:35 ` [PATCH v3 1/4] refs: introduce `is_pseudoref()` and `is_headref()` Karthik Nayak
2024-02-07 1:48 ` Jeff King
2024-02-07 9:27 ` Karthik Nayak
2024-01-29 11:35 ` [PATCH v3 2/4] refs: extract out `loose_fill_ref_dir_regular_file()` Karthik Nayak
2024-01-29 11:35 ` [PATCH v3 3/4] refs: introduce `refs_for_each_all_refs()` Karthik Nayak
2024-01-29 11:35 ` [PATCH v3 4/4] for-each-ref: avoid filtering on empty pattern Karthik Nayak
2024-02-05 18:48 ` Phillip Wood
2024-02-06 5:33 ` Patrick Steinhardt
2024-02-06 10:49 ` Phillip Wood
2024-02-06 8:52 ` Karthik Nayak
2024-02-06 13:55 ` Phillip Wood
2024-02-06 15:30 ` Karthik Nayak
2024-02-06 17:03 ` Junio C Hamano
2024-02-06 18:47 ` Junio C Hamano
2024-02-06 22:10 ` Karthik Nayak
2024-02-06 22:16 ` Junio C Hamano
2024-02-07 14:10 ` Karthik Nayak
2024-02-07 16:00 ` Junio C Hamano
2024-02-07 16:18 ` Karthik Nayak
2024-02-07 16:46 ` Junio C Hamano
2024-02-07 17:02 ` Karthik Nayak
2024-02-08 8:50 ` Patrick Steinhardt
2024-02-08 17:04 ` Junio C Hamano
2024-02-08 17:24 ` Patrick Steinhardt
2024-02-08 17:53 ` Junio C Hamano
2024-02-09 8:08 ` Patrick Steinhardt
2024-02-09 17:15 ` Junio C Hamano
2024-02-09 18:27 ` Karthik Nayak
2024-02-12 6:51 ` Patrick Steinhardt
2024-02-08 10:28 ` Phillip Wood
2024-02-08 17:07 ` Junio C Hamano
2024-02-07 7:48 ` Patrick Steinhardt
2024-02-07 16:01 ` Junio C Hamano
2024-01-29 20:37 ` [PATCH v3 0/4] for-each-ref: print all refs on empty string pattern Junio C Hamano
2024-02-11 18:39 ` [PATCH v4 0/5] for-each-ref: add '--include-root-refs' option Karthik Nayak
2024-02-11 18:39 ` [PATCH v4 1/5] refs: introduce `is_pseudoref()` and `is_headref()` Karthik Nayak
2024-02-12 12:47 ` Patrick Steinhardt
2024-02-12 17:01 ` Junio C Hamano
2024-02-13 15:48 ` Karthik Nayak
2024-02-13 19:42 ` Junio C Hamano
2024-02-14 10:28 ` Karthik Nayak
2024-02-14 16:59 ` Junio C Hamano
2024-02-14 18:15 ` Karthik Nayak
2024-02-12 18:05 ` Junio C Hamano
2024-02-11 18:39 ` [PATCH v4 2/5] refs: extract out `loose_fill_ref_dir_regular_file()` Karthik Nayak
2024-02-11 18:39 ` [PATCH v4 3/5] refs: introduce `refs_for_each_include_root_refs()` Karthik Nayak
2024-02-11 18:39 ` [PATCH v4 4/5] ref-filter: rename 'FILTER_REFS_ALL' to 'FILTER_REFS_REGULAR' Karthik Nayak
2024-02-11 18:39 ` [PATCH v4 5/5] for-each-ref: add new option to include root refs Karthik Nayak
2024-02-22 8:46 ` Patrick Steinhardt
2024-02-22 12:57 ` Karthik Nayak
2024-02-22 13:17 ` Patrick Steinhardt
2024-02-23 10:01 ` [PATCH v5 0/5] for-each-ref: add '--include-root-refs' option Karthik Nayak
2024-02-23 10:01 ` [PATCH v5 1/5] refs: introduce `is_pseudoref()` and `is_headref()` Karthik Nayak
2024-02-23 10:01 ` [PATCH v5 2/5] refs: extract out `loose_fill_ref_dir_regular_file()` Karthik Nayak
2024-02-23 10:01 ` [PATCH v5 3/5] refs: introduce `refs_for_each_include_root_refs()` Karthik Nayak
2024-02-23 10:01 ` [PATCH v5 4/5] ref-filter: rename 'FILTER_REFS_ALL' to 'FILTER_REFS_REGULAR' Karthik Nayak
2024-02-23 10:01 ` [PATCH v5 5/5] for-each-ref: add new option to include root refs Karthik Nayak
2024-02-23 18:41 ` [PATCH v5 0/5] for-each-ref: add '--include-root-refs' option Junio C Hamano
2024-02-23 20:13 ` Junio C Hamano
2024-02-27 7:39 ` Patrick Steinhardt
2024-02-27 16:54 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2024-03-15 10:05 [PATCH 2/5] refs: make `is_pseudoref_syntax()` stricter eugenio gigante
2024-03-21 13:09 ` Patrick Steinhardt
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=xmqqwms5hx3j.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=karthik.188@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.
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.