aboutsummaryrefslogtreecommitdiff
path: root/refspec.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-02-12 10:08:54 -0800
committerJunio C Hamano <gitster@pobox.com>2025-02-12 10:08:54 -0800
commit998c5f0c7554f511bafff587292f986a42fa2944 (patch)
tree09b67e85355f25fc4ccef877c53afd19ffb8ca77 /refspec.h
parent791677a5ddce9730a1203188938406ae030ed170 (diff)
parentd549b6c9ff44d3ccb32b9bfe1816d3cfb1d7052a (diff)
downloadgit-998c5f0c7554f511bafff587292f986a42fa2944.tar.xz
Merge branch 'ms/refspec-cleanup'
Code clean-up. cf. <Z6G-toOJjMmK8iJG@pks.im> * ms/refspec-cleanup: refspec: relocate apply_refspecs and related funtions refspec: relocate matching related functions remote: rename query_refspecs functions refspec: relocate refname_matches_negative_refspec_item remote: rename function omit_name_by_refspec
Diffstat (limited to 'refspec.h')
-rw-r--r--refspec.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/refspec.h b/refspec.h
index 69d693c87d..2a28d043be 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
@@ -71,4 +73,39 @@ struct strvec;
void refspec_ref_prefixes(const struct refspec *rs,
struct strvec *ref_prefixes);
+int refname_matches_negative_refspec_item(const char *refname, 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);
+
+/*
+ * 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 refspec_find_match(struct refspec *rs, struct refspec_item *query);
+
+/*
+ * Queries a refspec for all matches and appends results to the provided string
+ * list.
+ */
+void refspec_find_all_matches(struct refspec *rs,
+ struct refspec_item *query,
+ struct string_list *results);
+
+/*
+ * Remove all entries in the input list which match any negative refspec in
+ * the refspec list.
+ */
+struct ref *apply_negative_refspecs(struct ref *ref_map, struct refspec *rs);
+
+/*
+ * Search for a refspec that matches the given name and return the
+ * corresponding destination (dst) if a match is found, NULL otherwise.
+ */
+char *apply_refspecs(struct refspec *rs, const char *name);
+
#endif /* REFSPEC_H */