aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2025-12-28 19:10:49 +0100
committerJunio C Hamano <gitster@pobox.com>2025-12-29 22:02:53 +0900
commit154717b3b0b0631fb6700d5fc77e779106530fc3 (patch)
tree9d8370e5e80b7df51248a16f24445ec74f4c6ab3
parente61f227d0654212412ce1835f7e432df85cfc36b (diff)
downloadgit-154717b3b0b0631fb6700d5fc77e779106530fc3.tar.xz
tag: support arbitrary repositories in gpg_verify_tag()
Allow callers of gpg_verify_tag() specify the repository to use by providing a parameter for that. One of the two has not been using the_repository since 43a8391977 (builtin/verify-tag: stop using `the_repository`, 2025-03-08); let it pass in the correct repository. The other simply passes the_repository to get the same result as before. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/tag.c2
-rw-r--r--builtin/verify-tag.c2
-rw-r--r--tag.c12
-rw-r--r--tag.h2
4 files changed, 9 insertions, 9 deletions
diff --git a/builtin/tag.c b/builtin/tag.c
index 01eba90c5c..aeb04c487f 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -149,7 +149,7 @@ static int verify_tag(const char *name, const char *ref UNUSED,
if (format->format)
flags = GPG_VERIFY_OMIT_STATUS;
- if (gpg_verify_tag(oid, name, flags))
+ if (gpg_verify_tag(the_repository, oid, name, flags))
return -1;
if (format->format)
diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 558121eaa1..4a261b2369 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -61,7 +61,7 @@ int cmd_verify_tag(int argc,
continue;
}
- if (gpg_verify_tag(&oid, name, flags)) {
+ if (gpg_verify_tag(repo, &oid, name, flags)) {
had_error = 1;
continue;
}
diff --git a/tag.c b/tag.c
index dec5ea8eb0..9373c49d06 100644
--- a/tag.c
+++ b/tag.c
@@ -44,28 +44,28 @@ static int run_gpg_verify(const char *buf, unsigned long size, unsigned flags)
return ret;
}
-int gpg_verify_tag(const struct object_id *oid, const char *name_to_report,
- unsigned flags)
+int gpg_verify_tag(struct repository *r, const struct object_id *oid,
+ const char *name_to_report, unsigned flags)
{
enum object_type type;
char *buf;
unsigned long size;
int ret;
- type = odb_read_object_info(the_repository->objects, oid, NULL);
+ type = odb_read_object_info(r->objects, oid, NULL);
if (type != OBJ_TAG)
return error("%s: cannot verify a non-tag object of type %s.",
name_to_report ?
name_to_report :
- repo_find_unique_abbrev(the_repository, oid, DEFAULT_ABBREV),
+ repo_find_unique_abbrev(r, oid, DEFAULT_ABBREV),
type_name(type));
- buf = odb_read_object(the_repository->objects, oid, &type, &size);
+ buf = odb_read_object(r->objects, oid, &type, &size);
if (!buf)
return error("%s: unable to read file.",
name_to_report ?
name_to_report :
- repo_find_unique_abbrev(the_repository, oid, DEFAULT_ABBREV));
+ repo_find_unique_abbrev(r, oid, DEFAULT_ABBREV));
ret = run_gpg_verify(buf, size, flags);
diff --git a/tag.h b/tag.h
index ef12a61037..55c2d0792b 100644
--- a/tag.h
+++ b/tag.h
@@ -16,7 +16,7 @@ int parse_tag_buffer(struct repository *r, struct tag *item, const void *data, u
int parse_tag(struct tag *item);
void release_tag_memory(struct tag *t);
struct object *deref_tag(struct repository *r, struct object *, const char *, int);
-int gpg_verify_tag(const struct object_id *oid,
+int gpg_verify_tag(struct repository *r, const struct object_id *oid,
const char *name_to_report, unsigned flags);
struct object_id *get_tagged_oid(struct tag *tag);