Commit cdf9db3c authored by Junio C Hamano's avatar Junio C Hamano

create_tmp_packfile(): a helper function

Factor out a small logic out of the private write_pack_file() function
in builtin/pack-objects.c
Signed-off-by: default avatarJunio C Hamano <[email protected]>
parent c0ad4657
......@@ -584,16 +584,10 @@ static void write_pack_file(void)
unsigned char sha1[20];
char *pack_tmp_name = NULL;
if (pack_to_stdout) {
if (pack_to_stdout)
f = sha1fd_throughput(1, "<stdout>", progress_state);
} else {
char tmpname[PATH_MAX];
int fd;
fd = odb_mkstemp(tmpname, sizeof(tmpname),
pack_tmp_name = xstrdup(tmpname);
f = sha1fd(fd, pack_tmp_name);
f = create_tmp_packfile(&pack_tmp_name);
offset = write_pack_header(f, nr_remaining);
if (!offset)
......@@ -328,3 +328,13 @@ int encode_in_pack_object_header(enum object_type type, uintmax_t size, unsigned
*hdr = c;
return n;
struct sha1file *create_tmp_packfile(char **pack_tmp_name)
char tmpname[PATH_MAX];
int fd;
fd = odb_mkstemp(tmpname, sizeof(tmpname), "pack/tmp_pack_XXXXXX");
*pack_tmp_name = xstrdup(tmpname);
return sha1fd(fd, *pack_tmp_name);
......@@ -84,4 +84,7 @@ extern int encode_in_pack_object_header(enum object_type, uintmax_t, unsigned ch
#define PH_ERROR_PROTOCOL (-3)
extern int read_pack_header(int fd, struct pack_header *);
extern struct sha1file *create_tmp_packfile(char **pack_tmp_name);
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment