mirror of
https://github.com/git/git.git
synced 2024-11-27 03:53:55 +08:00
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: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c0ad465725
commit
cdf9db3c83
@ -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_pack_XXXXXX");
|
||||
pack_tmp_name = xstrdup(tmpname);
|
||||
f = sha1fd(fd, pack_tmp_name);
|
||||
}
|
||||
else
|
||||
f = create_tmp_packfile(&pack_tmp_name);
|
||||
|
||||
offset = write_pack_header(f, nr_remaining);
|
||||
if (!offset)
|
||||
|
10
pack-write.c
10
pack-write.c
@ -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);
|
||||
}
|
||||
|
3
pack.h
3
pack.h
@ -84,4 +84,7 @@ extern int encode_in_pack_object_header(enum object_type, uintmax_t, unsigned ch
|
||||
#define PH_ERROR_PACK_SIGNATURE (-2)
|
||||
#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);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user