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>
This commit is contained in:

committed by
Junio C Hamano

parent
8244d01de6
commit
e2f6f76585
@ -2304,7 +2304,7 @@ static const char *unpack(int err_fd, struct shallow_info *si)
|
||||
if (status)
|
||||
return "index-pack fork failed";
|
||||
|
||||
lockfile = index_pack_lockfile(child.out, NULL);
|
||||
lockfile = index_pack_lockfile(the_repository, child.out, NULL);
|
||||
if (lockfile) {
|
||||
pack_lockfile = register_tempfile(lockfile);
|
||||
free(lockfile);
|
||||
|
@ -1036,7 +1036,9 @@ static int get_pack(struct fetch_pack_args *args,
|
||||
die(_("fetch-pack: unable to fork off %s"), cmd_name);
|
||||
if (do_keep && (pack_lockfiles || fsck_objects)) {
|
||||
int is_well_formed;
|
||||
char *pack_lockfile = index_pack_lockfile(cmd.out, &is_well_formed);
|
||||
char *pack_lockfile = index_pack_lockfile(the_repository,
|
||||
cmd.out,
|
||||
&is_well_formed);
|
||||
|
||||
if (!is_well_formed)
|
||||
die(_("fetch-pack: invalid index-pack output"));
|
||||
|
@ -460,10 +460,10 @@ void fixup_pack_header_footer(const struct git_hash_algo *hash_algo,
|
||||
fsync_component_or_die(FSYNC_COMPONENT_PACK, pack_fd, pack_name);
|
||||
}
|
||||
|
||||
char *index_pack_lockfile(int ip_out, int *is_well_formed)
|
||||
char *index_pack_lockfile(struct repository *r, int ip_out, int *is_well_formed)
|
||||
{
|
||||
char packname[GIT_MAX_HEXSZ + 6];
|
||||
const int len = the_hash_algo->hexsz + 6;
|
||||
const int len = r->hash_algo->hexsz + 6;
|
||||
|
||||
/*
|
||||
* 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)
|
||||
packname[len-1] = 0;
|
||||
if (skip_prefix(packname, "keep\t", &name))
|
||||
return xstrfmt("%s/pack/pack-%s.keep",
|
||||
repo_get_object_directory(the_repository), name);
|
||||
repo_get_object_directory(r), name);
|
||||
return NULL;
|
||||
}
|
||||
if (is_well_formed)
|
||||
|
2
pack.h
2
pack.h
@ -94,7 +94,7 @@ off_t write_pack_header(struct hashfile *f, uint32_t);
|
||||
void fixup_pack_header_footer(const struct git_hash_algo *, int,
|
||||
unsigned char *, const char *, uint32_t,
|
||||
unsigned char *, off_t);
|
||||
char *index_pack_lockfile(int fd, int *is_well_formed);
|
||||
char *index_pack_lockfile(struct repository *r, int fd, int *is_well_formed);
|
||||
|
||||
struct ref;
|
||||
|
||||
|
Reference in New Issue
Block a user