зеркало из https://github.com/microsoft/git.git
pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
This structure will be used to communicate the per-object mtimes when writing a cruft pack. Here, we need the full packing_data structure because the mtime information is stored in an array there, not on the individual object_entry's themselves (to avoid paying the overhead in structure width for operations which do not generate a cruft pack). We haven't passed this information down before because one of the two callers (in bulk-checkin.c) does not have a packing_data structure at all. In that case (where no cruft pack will be generated), NULL is passed instead. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
94cd775a6c
Коммит
1c573cdd72
|
@ -1262,7 +1262,8 @@ static void write_pack_file(void)
|
||||||
|
|
||||||
stage_tmp_packfiles(&tmpname, pack_tmp_name,
|
stage_tmp_packfiles(&tmpname, pack_tmp_name,
|
||||||
written_list, nr_written,
|
written_list, nr_written,
|
||||||
&pack_idx_opts, hash, &idx_tmp_name);
|
&to_pack, &pack_idx_opts, hash,
|
||||||
|
&idx_tmp_name);
|
||||||
|
|
||||||
if (write_bitmap_index) {
|
if (write_bitmap_index) {
|
||||||
size_t tmpname_len = tmpname.len;
|
size_t tmpname_len = tmpname.len;
|
||||||
|
|
|
@ -33,7 +33,7 @@ static void finish_tmp_packfile(struct strbuf *basename,
|
||||||
char *idx_tmp_name = NULL;
|
char *idx_tmp_name = NULL;
|
||||||
|
|
||||||
stage_tmp_packfiles(basename, pack_tmp_name, written_list, nr_written,
|
stage_tmp_packfiles(basename, pack_tmp_name, written_list, nr_written,
|
||||||
pack_idx_opts, hash, &idx_tmp_name);
|
NULL, pack_idx_opts, hash, &idx_tmp_name);
|
||||||
rename_tmp_packfile_idx(basename, &idx_tmp_name);
|
rename_tmp_packfile_idx(basename, &idx_tmp_name);
|
||||||
|
|
||||||
free(idx_tmp_name);
|
free(idx_tmp_name);
|
||||||
|
|
|
@ -484,6 +484,7 @@ void stage_tmp_packfiles(struct strbuf *name_buffer,
|
||||||
const char *pack_tmp_name,
|
const char *pack_tmp_name,
|
||||||
struct pack_idx_entry **written_list,
|
struct pack_idx_entry **written_list,
|
||||||
uint32_t nr_written,
|
uint32_t nr_written,
|
||||||
|
struct packing_data *to_pack,
|
||||||
struct pack_idx_option *pack_idx_opts,
|
struct pack_idx_option *pack_idx_opts,
|
||||||
unsigned char hash[],
|
unsigned char hash[],
|
||||||
char **idx_tmp_name)
|
char **idx_tmp_name)
|
||||||
|
|
3
pack.h
3
pack.h
|
@ -109,11 +109,14 @@ int encode_in_pack_object_header(unsigned char *hdr, int hdr_len,
|
||||||
#define PH_ERROR_PROTOCOL (-3)
|
#define PH_ERROR_PROTOCOL (-3)
|
||||||
int read_pack_header(int fd, struct pack_header *);
|
int read_pack_header(int fd, struct pack_header *);
|
||||||
|
|
||||||
|
struct packing_data;
|
||||||
|
|
||||||
struct hashfile *create_tmp_packfile(char **pack_tmp_name);
|
struct hashfile *create_tmp_packfile(char **pack_tmp_name);
|
||||||
void stage_tmp_packfiles(struct strbuf *name_buffer,
|
void stage_tmp_packfiles(struct strbuf *name_buffer,
|
||||||
const char *pack_tmp_name,
|
const char *pack_tmp_name,
|
||||||
struct pack_idx_entry **written_list,
|
struct pack_idx_entry **written_list,
|
||||||
uint32_t nr_written,
|
uint32_t nr_written,
|
||||||
|
struct packing_data *to_pack,
|
||||||
struct pack_idx_option *pack_idx_opts,
|
struct pack_idx_option *pack_idx_opts,
|
||||||
unsigned char hash[],
|
unsigned char hash[],
|
||||||
char **idx_tmp_name);
|
char **idx_tmp_name);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче