Re: [PATCH v2 0/3] refspec: centralize refspec-related logic
- From
Meet Soni <meetsoni3017@gmail.com>
- Date
- Jan 27, 2025, 11:00 UTC
- Message-ID
- <CAPhwyn1GHkZK-ySwFqEzFMxQjmzsEtPMBKGLv311pixUeR5W=g@mail.gmail.com>
- In-Reply-To
- <20250127103644.36627-1-meetsoni3017@gmail.com>
On Mon, 27 Jan 2025 at 16:06, Meet Soni <meetsoni3017@gmail.com> wrote:
Show 83 quoted lines
>
> Thank you for reviewing :)
>
> I've added documentation comments for various function signatures to
> better understand what they do.
>
> Meet Soni (3):
> refspec: relocate omit_name_by_refspec and related functions
> refspec: relocate query related functions
> refspec: relocate apply_refspecs and related funtions
>
> refspec.c | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
> refspec.h | 41 +++++++++++
> remote.c | 201 -----------------------------------------------------
> remote.h | 15 ----
> 4 files changed, 244 insertions(+), 216 deletions(-)
>
> Range-diff against v1:
> 1: 97c98f5a38 ! 1: 8e393ea1c2 refspec: relocate omit_name_by_refspec and related functions
> @@ refspec.h: struct strvec;
> + * name matches at least one negative refspec, and 0 otherwise.
> + */
> +int omit_name_by_refspec(const char *name, struct refspec *rs);
> ++
> ++/*
> ++ * Checks whether a name matches a pattern and optionally generates a result.
> ++ * Returns 1 if the name matches the pattern, 0 otherwise.
> ++ */
> +int match_name_with_pattern(const char *key, const char *name,
> + const char *value, char **result);
> +
> 2: 4f0080aad6 ! 2: ef6edbc15b refspec: relocate query related functions
> @@ refspec.c: int omit_name_by_refspec(const char *name, struct refspec *rs)
> +}
>
> ## refspec.h ##
> -@@
> - #ifndef REFSPEC_H
> - #define REFSPEC_H
> +@@ refspec.h: struct refspec_item {
> + char *raw;
> + };
>
> -+#include "string-list.h"
> ++struct string_list;
> +
> - #define TAG_REFSPEC "refs/tags/*:refs/tags/*"
> + #define REFSPEC_FETCH 1
> + #define REFSPEC_PUSH 0
>
> - /**
> @@ refspec.h: 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);
> ++
> ++/*
> ++ * Queries a refspec for all matches and appends results to the provided string
> ++ * list.
> ++ */
> +void query_refspecs_multiple(struct refspec *rs,
> + struct refspec_item *query,
> + struct string_list *results);
> 3: f89328fa66 ! 3: ea72647439 refspec: relocate apply_refspecs and related funtions
> @@ refspec.h: void query_refspecs_multiple(struct refspec *rs,
> + */
> +struct ref *apply_negative_refspecs(struct ref *ref_map, struct refspec *rs);
> +
> ++/*
> ++ * Applies refspecs to a name and returns the corresponding destination.
> ++ * Returns the destination string if a match is found, NULL otherwise.
> ++ */
> +char *apply_refspecs(struct refspec *rs, const char *name);
> +
> #endif /* REFSPEC_H */
> --
> 2.34.1
>Hi everyone, I realized I forgot to include the In-Reply-To header in my v2 submission, which would have linked this series to v1. My apologies for the oversight!
For reference, the v1 cover letter can be found here [1] [1]: https://lore.kernel.org/git/20250122075154.5697-1-meetsoni3017@gmail.com/
Please consider this email as a manual link between the v1 and v2 series. Thank you for your understanding.
Best regards, Meet