diff options
| author | Meet Soni <meetsoni3017@gmail.com> | 2025-02-04 09:35:58 +0530 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-02-04 09:51:42 -0800 |
| commit | d549b6c9ff44d3ccb32b9bfe1816d3cfb1d7052a (patch) | |
| tree | 283108093dffa111ed78d80f3bc01ee1bb209233 /refspec.c | |
| parent | 7b24a170d2c36c83c3669d194af46a09ccdeec43 (diff) | |
| download | git-d549b6c9ff44d3ccb32b9bfe1816d3cfb1d7052a.tar.xz | |
refspec: relocate apply_refspecs and related funtions
Move the functions `apply_refspecs()` and `apply_negative_refspecs()`
from `remote.c` to `refspec.c`. These functions focus on applying
refspecs, so centralizing them in `refspec.c` improves code organization
by keeping refspec-related logic in one place.
Signed-off-by: Meet Soni <meetsoni3017@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refspec.c')
| -rw-r--r-- | refspec.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -9,6 +9,7 @@ #include "strvec.h" #include "refs.h" #include "refspec.h" +#include "remote.h" #include "strbuf.h" /* @@ -447,3 +448,34 @@ int refspec_find_match(struct refspec *rs, struct refspec_item *query) } return -1; } + +struct ref *apply_negative_refspecs(struct ref *ref_map, struct refspec *rs) +{ + struct ref **tail; + + for (tail = &ref_map; *tail; ) { + struct ref *ref = *tail; + + if (refname_matches_negative_refspec_item(ref->name, rs)) { + *tail = ref->next; + free(ref->peer_ref); + free(ref); + } else + tail = &ref->next; + } + + return ref_map; +} + +char *apply_refspecs(struct refspec *rs, const char *name) +{ + struct refspec_item query; + + memset(&query, 0, sizeof(struct refspec_item)); + query.src = (char *)name; + + if (refspec_find_match(rs, &query)) + return NULL; + + return query.dst; +} |
