Message ID | 20190515203839.zixx23bwzeyto6a3@dcvr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [WIP] repack leaving stale entries in objects/info/packs | expand |
On Wed, May 15, 2019 at 08:38:39PM +0000, Eric Wong wrote: > 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... We never delete entries from the in-memory packed_git list; a reprepare only adds to the list. You'd need to teach update_server_info() to ignore packs which are no longer present (or switch to exec-ing a separate update-server-info binary). -Peff
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 )