diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-04-29 02:03:03 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-04-29 02:03:03 +0300 |
commit | fc23c397c7088a397a693bc5cb483a5894f59f53 (patch) | |
tree | 69d916089913084988fe52b5b87908d8cec7a95b /pack-write.c | |
parent | f85cd430b12b0d3e4f1a30ef3239a1b73d5f6331 (diff) | |
parent | 029a632c35861b3395c71e767d80bbf463dc1ae1 (diff) |
Merge branch 'tb/enable-cruft-packs-by-default'
When "gc" needs to retain unreachable objects, packing them into
cruft packs (instead of exploding them into loose object files) has
been offered as a more efficient option for some time. Now the use
of cruft packs has been made the default and no longer considered
an experimental feature.
* tb/enable-cruft-packs-by-default:
repository.h: drop unused `gc_cruft_packs`
builtin/gc.c: make `gc.cruftPacks` enabled by default
t/t9300-fast-import.sh: prepare for `gc --cruft` by default
t/t6500-gc.sh: add additional test cases
t/t6500-gc.sh: refactor cruft pack tests
t/t6501-freshen-objects.sh: prepare for `gc --cruft` by default
t/t5304-prune.sh: prepare for `gc --cruft` by default
builtin/gc.c: ignore cruft packs with `--keep-largest-pack`
builtin/repack.c: fix incorrect reference to '-C'
pack-write.c: plug a leak in stage_tmp_packfiles()
Diffstat (limited to 'pack-write.c')
-rw-r--r-- | pack-write.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/pack-write.c b/pack-write.c index 381555359c..3b3ce89de6 100644 --- a/pack-write.c +++ b/pack-write.c @@ -314,13 +314,13 @@ static void write_mtimes_trailer(struct hashfile *f, const unsigned char *hash) hashwrite(f, hash, the_hash_algo->rawsz); } -static const char *write_mtimes_file(struct packing_data *to_pack, - struct pack_idx_entry **objects, - uint32_t nr_objects, - const unsigned char *hash) +static char *write_mtimes_file(struct packing_data *to_pack, + struct pack_idx_entry **objects, + uint32_t nr_objects, + const unsigned char *hash) { struct strbuf tmp_file = STRBUF_INIT; - const char *mtimes_name; + char *mtimes_name; struct hashfile *f; int fd; @@ -546,7 +546,7 @@ void stage_tmp_packfiles(struct strbuf *name_buffer, char **idx_tmp_name) { const char *rev_tmp_name = NULL; - const char *mtimes_tmp_name = NULL; + char *mtimes_tmp_name = NULL; if (adjust_shared_perm(pack_tmp_name)) die_errno("unable to make temporary pack file readable"); @@ -572,6 +572,7 @@ void stage_tmp_packfiles(struct strbuf *name_buffer, rename_tmp_packfile(name_buffer, mtimes_tmp_name, "mtimes"); free((char *)rev_tmp_name); + free(mtimes_tmp_name); } void write_promisor_file(const char *promisor_name, struct ref **sought, int nr_sought) |