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];
|
unsigned char sha1[20];
|
||||||
char *pack_tmp_name = NULL;
|
char *pack_tmp_name = NULL;
|
||||||
|
|
||||||
if (pack_to_stdout) {
|
if (pack_to_stdout)
|
||||||
f = sha1fd_throughput(1, "<stdout>", progress_state);
|
f = sha1fd_throughput(1, "<stdout>", progress_state);
|
||||||
} else {
|
else
|
||||||
char tmpname[PATH_MAX];
|
f = create_tmp_packfile(&pack_tmp_name);
|
||||||
int fd;
|
|
||||||
fd = odb_mkstemp(tmpname, sizeof(tmpname),
|
|
||||||
"pack/tmp_pack_XXXXXX");
|
|
||||||
pack_tmp_name = xstrdup(tmpname);
|
|
||||||
f = sha1fd(fd, pack_tmp_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
offset = write_pack_header(f, nr_remaining);
|
offset = write_pack_header(f, nr_remaining);
|
||||||
if (!offset)
|
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;
|
*hdr = c;
|
||||||
return n;
|
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_PACK_SIGNATURE (-2)
|
||||||
#define PH_ERROR_PROTOCOL (-3)
|
#define PH_ERROR_PROTOCOL (-3)
|
||||||
extern int read_pack_header(int fd, struct pack_header *);
|
extern int read_pack_header(int fd, struct pack_header *);
|
||||||
|
|
||||||
|
extern struct sha1file *create_tmp_packfile(char **pack_tmp_name);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user