Browse Source

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
maint
Junio C Hamano 6 years ago
parent
commit
5104f8f1ac
  1. 4
      builtin/gc.c
  2. 2
      builtin/repack.c

4
builtin/gc.c

@ -659,8 +659,10 @@ int cmd_gc(int argc, const char **argv, const char *prefix) @@ -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,

2
builtin/repack.c

@ -419,6 +419,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix) @@ -419,6 +419,8 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
if (!names.nr && !po_args.quiet)
printf_ln(_("Nothing new to pack."));

close_all_packs(the_repository->objects);

/*
* Ok we have prepared all new packfiles.
* First see if there are packs of the same name and if so

Loading…
Cancel
Save