pack-write: pass repository to `index_pack_lockfile()`
The `index_pack_lockfile()` function uses the global `the_repository` variable to access the repository. To avoid global variable usage, pass the repository from the layers above. Altough the layers above could have access to the repository internally, simply pass in `the_repository`. This avoids any compatibility issues and bubbles up global variable usage to upper layers which can be eventually resolved. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Karthik Nayak committed
Jan 19, 2025 at 12:19 UTC
e2f6f7658559246ea03015fc7b999af2cd20c122
4 files changed
+8
-6
builtin/receive-pack.c
+1
-1
@@ -2304,7 +2304,7 @@ static const char *unpack(int err_fd, struct shallow_info *si)
2304
if (status)
2305
return "index-pack fork failed";
2306
2307
- lockfile = index_pack_lockfile(child.out, NULL);
2307
+ lockfile = index_pack_lockfile(the_repository, child.out, NULL);
2308
if (lockfile) {
2309
pack_lockfile = register_tempfile(lockfile);
2310
free(lockfile);
fetch-pack.c
+3
-1
@@ -1036,7 +1036,9 @@ static int get_pack(struct fetch_pack_args *args,
1036
die(_("fetch-pack: unable to fork off %s"), cmd_name);
1037
if (do_keep && (pack_lockfiles || fsck_objects)) {
1038
int is_well_formed;
1039
- char *pack_lockfile = index_pack_lockfile(cmd.out, &is_well_formed);
1039
+ char *pack_lockfile = index_pack_lockfile(the_repository,
1040
+ cmd.out,
1041
+ &is_well_formed);
1042
1043
if (!is_well_formed)
1044
die(_("fetch-pack: invalid index-pack output"));
pack-write.c
+3
-3
@@ -460,10 +460,10 @@ void fixup_pack_header_footer(const struct git_hash_algo *hash_algo,
460
fsync_component_or_die(FSYNC_COMPONENT_PACK, pack_fd, pack_name);
461
}
462
463
-char *index_pack_lockfile(int ip_out, int *is_well_formed)
463
+char *index_pack_lockfile(struct repository *r, int ip_out, int *is_well_formed)
464
{
465
char packname[GIT_MAX_HEXSZ + 6];
466
- const int len = the_hash_algo->hexsz + 6;
466
+ const int len = r->hash_algo->hexsz + 6;
467
468
/*
469
* The first thing we expect from index-pack's output
@@ -480,7 +480,7 @@ char *index_pack_lockfile(int ip_out, int *is_well_formed)
480
packname[len-1] = 0;
481
if (skip_prefix(packname, "keep\t", &name))
482
return xstrfmt("%s/pack/pack-%s.keep",
483
- repo_get_object_directory(the_repository), name);
483
+ repo_get_object_directory(r), name);
484
return NULL;
485
}
486
if (is_well_formed)
pack.h
+1
-1
@@ -94,7 +94,7 @@ off_t write_pack_header(struct hashfile *f, uint32_t);
94
void fixup_pack_header_footer(const struct git_hash_algo *, int,
95
unsigned char *, const char *, uint32_t,
96
unsigned char *, off_t);
97
-char *index_pack_lockfile(int fd, int *is_well_formed);
97
+char *index_pack_lockfile(struct repository *r, int fd, int *is_well_formed);
98
99
struct ref;
100