Browse Source

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>
maint
Junio C Hamano 14 years ago
parent
commit
cdf9db3c83
  1. 12
      builtin/pack-objects.c
  2. 10
      pack-write.c
  3. 3
      pack.h

12
builtin/pack-objects.c

@ -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

@ -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

@ -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…
Cancel
Save