diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-01-19 00:49:57 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-19 00:49:57 +0300 |
commit | 5104f8f1acaecbe252cd0c561582052c12278b62 (patch) | |
tree | 8a30c9955bd2dcd3782e27f0ca551878b4624638 /builtin/gc.c | |
parent | eab7584e3785d4a210ba326bcb02294285f57a22 (diff) | |
parent | 5bdece0d70578edda870b0cf04d598ba04e7a0a3 (diff) |
Merge branch 'js/gc-repack-close-before-remove'
"git gc" and "git repack" did not close the open packfiles that
they found unneeded before removing them, which didn't work on a
platform incapable of removing an open file. This has been
corrected.
* js/gc-repack-close-before-remove:
gc/repack: release packs when needed
Diffstat (limited to 'builtin/gc.c')
-rw-r--r-- | builtin/gc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/builtin/gc.c b/builtin/gc.c index 7696017cd41..020f725acc4 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -659,8 +659,10 @@ int cmd_gc(int argc, const char **argv, const char *prefix) report_garbage = report_pack_garbage; reprepare_packed_git(the_repository); - if (pack_garbage.nr > 0) + if (pack_garbage.nr > 0) { + close_all_packs(the_repository->objects); clean_pack_garbage(); + } if (gc_write_commit_graph) write_commit_graph_reachable(get_object_directory(), 0, |