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