I've also noticed objects/info/packs contains stale entries after repack/gc runs on current git. Tried adding reprepare_packed_git before update_server_info, but that didn't seem to work; so maybe something isn't cleared. Might have time to investigate more this week, might not... diff --git a/builtin/repack.c b/builtin/repack.c index 67f8978043..ec46f2099a 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -559,8 +559,10 @@ int cmd_repack(int argc, const char **argv, const char *prefix) prune_shallow(PRUNE_QUICK); } - if (!no_update_server_info) + if (!no_update_server_info) { + reprepare_packed_git(the_repository); update_server_info(0); + } remove_temporary_files(); if (git_env_bool(GIT_TEST_MULTI_PACK_INDEX, 0)) diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh index 7411bf7fec..867d4fb0c7 100755 --- a/t/t6500-gc.sh +++ b/t/t6500-gc.sh @@ -71,6 +71,7 @@ test_expect_success 'gc --keep-largest-pack' ' git gc --keep-largest-pack && ( cd .git/objects/pack && ls *.pack ) >pack-list && test_line_count = 2 pack-list && + test_line_count = 2 .git/objects/info/packs && test_path_is_file $BASE_PACK && git fsck )