[PATCH v2 10/10] fetch: use ref_namespaces during prefetch
- From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Jul 29, 2022, 19:29 UTC
- Message-ID
- <8599bb550457ea0edb3c412e84ee688061883e7f.1659122979.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1301.v2.git.1659122979.gitgitgadget@gmail.com>
From: Derrick Stolee <derrickstolee@github.com>
The "refs/prefetch/" namespace is used by 'git fetch --prefetch' as a replacement of the destination of the refpsec for a remote. Git also removes refspecs that include tags.
Instead of using string literals for the 'refs/tags/ and 'refs/prefetch/' namespaces, use the entries in the ref_namespaces array.
This kind of change could be done in many places around the codebase, but we are isolating only to this change because of the way the refs/prefetch/ namespace somewhat motivated the creation of the ref_namespaces array.
Signed-off-by: Derrick Stolee <derrickstolee@github.com> --- builtin/fetch.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/builtin/fetch.c b/builtin/fetch.c index fc5cecb4835..004d92b3554 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -490,7 +490,9 @@ static void filter_prefetch_refspec(struct refspec *rs) continue; if (!rs->items[i].dst || (rs->items[i].src && - !strncmp(rs->items[i].src, "refs/tags/", 10))) { + !strncmp(rs->items[i].src, + ref_namespaces[NAMESPACE_TAGS].ref, + strlen(ref_namespaces[NAMESPACE_TAGS].ref)))) { int j; free(rs->items[i].src); @@ -506,7 +508,7 @@ static void filter_prefetch_refspec(struct refspec *rs) } old_dst = rs->items[i].dst; - strbuf_addstr(&new_dst, "refs/prefetch/"); + strbuf_addstr(&new_dst, ref_namespaces[NAMESPACE_PREFETCH].ref); /* * If old_dst starts with "refs/", then place
-- gitgitgadget