[PATCH v2 0/3] refspec: centralize refspec-related logic
- From
Meet Soni <meetsoni3017@gmail.com>
- Date
- Jan 27, 2025, 10:36 UTC
- Message-ID
- <20250127103644.36627-1-meetsoni3017@gmail.com>
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