git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 2/3] refspec: relocate query related functions

From
Meet Soni <meetsoni3017@gmail.com>
Date
Jan 29, 2025, 06:32 UTC
Message-ID
<CAPhwyn110E39uksCbSNYy3wRrxmG2QuuXEvPRrUT2SSTLxCKcQ@mail.gmail.com>
In-Reply-To
<xmqq7c6grrdl.fsf@gitster.g>
On Tue, 28 Jan 2025 at 00:55, Junio C Hamano <gitster@pobox.com> wrote:
Show 21 quoted lines
>
> 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!
Show 34 quoted lines
> > 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.
Previous: Junio C HamanoNext: Meet Soni
Message 7 of 33 in “refspec: centralize refspec-related logic”
  1. 0/3 refspec: centralize refspec-related logicMeet Soni, Jan 27, 2025
  2. 1/3 refspec: relocate omit_name_by_refspec and related functionsMeet Soni, Jan 27, 2025
  3. Junio C HamanoJan 27, 2025
  4. Meet SoniJan 29, 2025
  5. 2/3 refspec: relocate query related functionsMeet Soni, Jan 27, 2025
  6. Junio C HamanoJan 27, 2025
  7. Meet SoniJan 29, 2025
  8. 3/3 refspec: relocate apply_refspecs and related funtionsMeet Soni, Jan 27, 2025
  9. Junio C HamanoJan 27, 2025
  10. Meet SoniJan 29, 2025
  11. Meet SoniJan 27, 2025
  12. Junio C HamanoJan 27, 2025
  13. Meet SoniJan 29, 2025
  14. 0/5 refspec: centralize refspec-related logicMeet Soni, Feb 1, 2025
  15. 1/5 refactor(remote): rename function omit_name_by_refspecMeet Soni, Feb 1, 2025
  16. Patrick SteinhardtFeb 3, 2025
  17. 2/5 refspec: relocate refname_matches_negative_refspec_itemMeet Soni, Feb 1, 2025
  18. 3/5 refactor(remote): rename query_refspecs functionsMeet Soni, Feb 1, 2025
  19. Patrick SteinhardtFeb 3, 2025
  20. Meet SoniFeb 4, 2025
  21. Junio C HamanoFeb 4, 2025
  22. 4/5 refspec: relocate matching related functionsMeet Soni, Feb 1, 2025
  23. 5/5 refspec: relocate apply_refspecs and related funtionsMeet Soni, Feb 1, 2025
  24. [GSoC][PATCH v4 0/5] refspec: centralize refspec-related logicMeet Soni, Feb 4, 2025
  25. [GSoC][PATCH v4 1/5] remote: rename function omit_name_by_refspecMeet Soni, Feb 4, 2025
  26. Karthik NayakFeb 4, 2025
  27. Meet SoniFeb 4, 2025
  28. Karthik NayakFeb 6, 2025
  29. [GSoC][PATCH v4 2/5] refspec: relocate refname_matches_negative_refspec_itemMeet Soni, Feb 4, 2025
  30. [GSoC][PATCH v4 3/5] remote: rename query_refspecs functionsMeet Soni, Feb 4, 2025
  31. [GSoC][PATCH v4 4/5] refspec: relocate matching related functionsMeet Soni, Feb 4, 2025
  32. [GSoC][PATCH v4 5/5] refspec: relocate apply_refspecs and related funtionsMeet Soni, Feb 4, 2025
  33. Patrick SteinhardtFeb 4, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.