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
        )

Reply via email to