All of lore.kernel.org
 help / color / mirror / Atom feed
From: Meet Soni <meetsoni3017@gmail.com>
To: git@vger.kernel.org
Cc: shubham.kanodia10@gmail.com, Meet Soni <meetsoni3017@gmail.com>,
	Elijah Newren <newren@gmail.com>,
	Jacob Keller <jacob.keller@gmail.com>,
	Matthew Rogers <mattr94@gmail.com>, Jeff King <peff@peff.net>,
	Patrick Steinhardt <ps@pks.im>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 3/3] refspec: relocate apply_refspecs and related funtions
Date: Mon, 27 Jan 2025 16:06:44 +0530	[thread overview]
Message-ID: <20250127103644.36627-4-meetsoni3017@gmail.com> (raw)
In-Reply-To: <20250127103644.36627-1-meetsoni3017@gmail.com>

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>
---
 refspec.c | 32 ++++++++++++++++++++++++++++++++
 refspec.h | 12 ++++++++++++
 remote.c  | 31 -------------------------------
 remote.h  |  8 --------
 4 files changed, 44 insertions(+), 39 deletions(-)

diff --git a/refspec.c b/refspec.c
index 72b3911110..d279d6032a 100644
--- a/refspec.c
+++ b/refspec.c
@@ -9,6 +9,7 @@
 #include "strvec.h"
 #include "refs.h"
 #include "refspec.h"
+#include "remote.h"
 #include "strbuf.h"
 
 /*
@@ -447,3 +448,34 @@ int query_refspecs(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 (omit_name_by_refspec(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 (query_refspecs(rs, &query))
+		return NULL;
+
+	return query.dst;
+}
diff --git a/refspec.h b/refspec.h
index d0788de782..231bcfb33e 100644
--- a/refspec.h
+++ b/refspec.h
@@ -100,4 +100,16 @@ void query_refspecs_multiple(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);
+
+/*
+ * 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 */
diff --git a/remote.c b/remote.c
index 2c46611821..641dd1125f 100644
--- a/remote.c
+++ b/remote.c
@@ -907,37 +907,6 @@ void ref_push_report_free(struct ref_push_report *report)
 	}
 }
 
-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 (omit_name_by_refspec(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 (query_refspecs(rs, &query))
-		return NULL;
-
-	return query.dst;
-}
-
 int remote_find_tracking(struct remote *remote, struct refspec_item *refspec)
 {
 	return query_refspecs(&remote->fetch, refspec);
diff --git a/remote.h b/remote.h
index f3da64dc41..b4bb16af0e 100644
--- a/remote.h
+++ b/remote.h
@@ -261,14 +261,6 @@ int resolve_remote_symref(struct ref *ref, struct ref *list);
  */
 struct ref *ref_remove_duplicates(struct ref *ref_map);
 
-/*
- * 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);
-
-char *apply_refspecs(struct refspec *rs, const char *name);
-
 int check_push_refs(struct ref *src, struct refspec *rs);
 int match_push_refs(struct ref *src, struct ref **dst,
 		    struct refspec *rs, int flags);
-- 
2.34.1


  parent reply	other threads:[~2025-01-27 10:37 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-27 10:36 [PATCH v2 0/3] refspec: centralize refspec-related logic Meet Soni
2025-01-27 10:36 ` [PATCH v2 1/3] refspec: relocate omit_name_by_refspec and related functions Meet Soni
2025-01-27 17:21   ` Junio C Hamano
2025-01-29  5:15     ` Meet Soni
2025-01-27 10:36 ` [PATCH v2 2/3] refspec: relocate query " Meet Soni
2025-01-27 19:25   ` Junio C Hamano
2025-01-29  6:32     ` Meet Soni
2025-01-27 10:36 ` Meet Soni [this message]
2025-01-27 20:14   ` [PATCH v2 3/3] refspec: relocate apply_refspecs and related funtions Junio C Hamano
2025-01-29  7:03     ` Meet Soni
2025-01-27 11:00 ` [PATCH v2 0/3] refspec: centralize refspec-related logic Meet Soni
2025-01-27 18:10 ` Junio C Hamano
2025-01-29  5:18   ` Meet Soni
2025-02-01  6:41 ` [PATCH v3 0/5] " Meet Soni
2025-02-01  6:41   ` [PATCH v3 1/5] refactor(remote): rename function omit_name_by_refspec Meet Soni
2025-02-03  6:45     ` Patrick Steinhardt
2025-02-01  6:41   ` [PATCH v3 2/5] refspec: relocate refname_matches_negative_refspec_item Meet Soni
2025-02-01  6:42   ` [PATCH v3 3/5] refactor(remote): rename query_refspecs functions Meet Soni
2025-02-03  6:46     ` Patrick Steinhardt
2025-02-04  3:39       ` Meet Soni
2025-02-04 13:58         ` Junio C Hamano
2025-02-01  6:42   ` [PATCH v3 4/5] refspec: relocate matching related functions Meet Soni
2025-02-01  6:42   ` [PATCH v3 5/5] refspec: relocate apply_refspecs and related funtions Meet Soni
2025-02-04  4:05   ` [GSoC][PATCH v4 0/5] refspec: centralize refspec-related logic Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 1/5] remote: rename function omit_name_by_refspec Meet Soni
2025-02-04  9:00       ` Karthik Nayak
2025-02-04 13:58         ` Meet Soni
2025-02-06 10:13           ` Karthik Nayak
2025-02-04  4:05     ` [GSoC][PATCH v4 2/5] refspec: relocate refname_matches_negative_refspec_item Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 3/5] remote: rename query_refspecs functions Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 4/5] refspec: relocate matching related functions Meet Soni
2025-02-04  4:05     ` [GSoC][PATCH v4 5/5] refspec: relocate apply_refspecs and related funtions Meet Soni
2025-02-04  7:16     ` [GSoC][PATCH v4 0/5] refspec: centralize refspec-related logic Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250127103644.36627-4-meetsoni3017@gmail.com \
    --to=meetsoni3017@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacob.keller@gmail.com \
    --cc=mattr94@gmail.com \
    --cc=newren@gmail.com \
    --cc=peff@peff.net \
    --cc=ps@pks.im \
    --cc=shubham.kanodia10@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.