git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Meet Soni <meetsoni3017@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, shubham.kanodia10@gmail.com,
	 Jeff King <peff@peff.net>, Elijah Newren <newren@gmail.com>,
	Nipunn Koorapati <nipunn@dropbox.com>
Subject: Re: [PATCH v2 2/3] refspec: relocate query related functions
Date: Wed, 29 Jan 2025 12:02:20 +0530	[thread overview]
Message-ID: <CAPhwyn110E39uksCbSNYy3wRrxmG2QuuXEvPRrUT2SSTLxCKcQ@mail.gmail.com> (raw)
In-Reply-To: <xmqq7c6grrdl.fsf@gitster.g>

On Tue, 28 Jan 2025 at 00:55, Junio C Hamano <gitster@pobox.com> wrote:
>
> Meet Soni <meetsoni3017@gmail.com> writes:
>
> > Move the functions `query_refspecs()`, `query_refspecs_multiple()` and
> > `query_matches_negative_refspec()` from `remote.c` to `refspec.c`. These
> > functions focus on querying refspecs, so centralizing them in `refspec.c`
> > improves code organization by keeping refspec-related logic in one place.
>
> I think query_matches_negative_refspec() is appropriate named (not
> that it matters much, as it becomes a mere private helper in the
> file), unlike the ones in the first patch that are suboptimally
> named.  query_refspecs() could probalby lose the plural 's' at the
> end---there is only single refspec, which is a collection of refspec
> items, involved and it makes a single query---but otherwise it also
> has an appropriate name (this matters a bit more, but not that much,
> as it was already public).
>
> query_refspecs_multiple() is not a great name, though.  It does not
> convey what is multiple.  Does it make multiple questions in one go?
> Does it ask a question that can have multiple answers?
>
I agree that the original names are ambiguous. query_refspecs_multiple()
is similar to query_refspecs(), but instead of returning the first match, it
collects all matching results.

To improve clarity and consistency, I’d like to propose the following
renames:
    *query_refspecs() -> find_refspec_match()
        `find` better describes its purpose than `query` and `match`
        clarifies that it’s looking for a single result.

    *query_refspecs_multiple() -> find_all_refspec_matches()
        Unlike the previous function, this one collects all matching results
        instead of stopping at the first match. The new name highlights that
        it returns multiple matches.
Let me know what you think!

> > Signed-off-by: Meet Soni <meetsoni3017@gmail.com>
> > ---
> >  refspec.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
> >  refspec.h |  16 +++++++
> >  remote.c  | 122 -----------------------------------------------------
> >  remote.h  |   1 -
> >  4 files changed, 139 insertions(+), 123 deletions(-)
>
> > diff --git a/refspec.h b/refspec.h
> > index 891d50b159..d0788de782 100644
> > --- a/refspec.h
> > +++ b/refspec.h
> > @@ -30,6 +30,8 @@ struct refspec_item {
> >       char *raw;
> >  };
> >
> > +struct string_list;
> > +
> >  #define REFSPEC_FETCH 1
> >  #define REFSPEC_PUSH 0
> >
> > @@ -84,4 +86,18 @@ int omit_name_by_refspec(const char *name, struct refspec *rs);
> >  int match_name_with_pattern(const char *key, const char *name,
> >                                  const char *value, char **result);
> >
> > +/*
> > + * Queries a refspec for a match and updates the query item.
> > + * Returns 0 on success, -1 if no match is found or negative refspec matches.
> > + */
> > +int query_refspecs(struct refspec *rs, struct refspec_item *query);
>
> This one now has an excellent comment.  Great job.
>
> Thanks.

  reply	other threads:[~2025-01-29  6:32 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-27 10:36 [PATCH v2 0/3] refspec: centralize refspec-related logic Meet Soni
2025-01-27 10:36 ` [PATCH v2 1/3] refspec: relocate omit_name_by_refspec and related functions Meet Soni
2025-01-27 17:21   ` Junio C Hamano
2025-01-29  5:15     ` Meet Soni
2025-01-27 10:36 ` [PATCH v2 2/3] refspec: relocate query " Meet Soni
2025-01-27 19:25   ` Junio C Hamano
2025-01-29  6:32     ` Meet Soni [this message]
2025-01-27 10:36 ` [PATCH v2 3/3] refspec: relocate apply_refspecs and related funtions Meet Soni
2025-01-27 20:14   ` Junio C Hamano
2025-01-29  7:03     ` Meet Soni
2025-01-27 11:00 ` [PATCH v2 0/3] refspec: centralize refspec-related logic Meet Soni
2025-01-27 18:10 ` Junio C Hamano
2025-01-29  5:18   ` Meet Soni
2025-02-01  6:41 ` [PATCH v3 0/5] " Meet Soni
2025-02-01  6:41   ` [PATCH v3 1/5] refactor(remote): rename function omit_name_by_refspec Meet Soni
2025-02-03  6:45     ` Patrick Steinhardt
2025-02-01  6:41   ` [PATCH v3 2/5] refspec: relocate refname_matches_negative_refspec_item Meet Soni
2025-02-01  6:42   ` [PATCH v3 3/5] refactor(remote): rename query_refspecs functions Meet Soni
2025-02-03  6:46     ` Patrick Steinhardt
2025-02-04  3:39       ` Meet Soni
2025-02-04 13:58         ` Junio C Hamano
2025-02-01  6:42   ` [PATCH v3 4/5] refspec: relocate matching related functions Meet Soni
2025-02-01  6:42   ` [PATCH v3 5/5] refspec: relocate apply_refspecs and related funtions Meet Soni
2025-02-04  4:05   ` [GSoC][PATCH v4 0/5] refspec: centralize refspec-related logic Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 1/5] remote: rename function omit_name_by_refspec Meet Soni
2025-02-04  9:00       ` Karthik Nayak
2025-02-04 13:58         ` Meet Soni
2025-02-06 10:13           ` Karthik Nayak
2025-02-04  4:05     ` [GSoC][PATCH v4 2/5] refspec: relocate refname_matches_negative_refspec_item Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 3/5] remote: rename query_refspecs functions Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 4/5] refspec: relocate matching related functions Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 5/5] refspec: relocate apply_refspecs and related funtions Meet Soni
2025-02-04  7:16     ` [GSoC][PATCH v4 0/5] refspec: centralize refspec-related logic 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=CAPhwyn110E39uksCbSNYy3wRrxmG2QuuXEvPRrUT2SSTLxCKcQ@mail.gmail.com \
    --to=meetsoni3017@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=newren@gmail.com \
    --cc=nipunn@dropbox.com \
    --cc=peff@peff.net \
    --cc=shubham.kanodia10@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 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).