diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-28 09:33:06 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-28 09:33:06 -0700 |
commit | 9f389aa4920f147a6314719741b47074b2e4b727 (patch) | |
tree | edf7abf348e4b2ba4fe128801346357c512ce173 /builtin | |
parent | 2.3.2 release notes: typofix (diff) | |
parent | refs.c: drop curate_packed_refs (diff) | |
download | tgif-9f389aa4920f147a6314719741b47074b2e4b727.tar.xz |
Merge branch 'jk/prune-with-corrupt-refs' into maint
"git prune" used to largely ignore broken refs when deciding which
objects are still being used, which could spread an existing small
damage and make it a larger one.
* jk/prune-with-corrupt-refs:
refs.c: drop curate_packed_refs
repack: turn on "ref paranoia" when doing a destructive repack
prune: turn on ref_paranoia flag
refs: introduce a "ref paranoia" flag
t5312: test object deletion code paths in a corrupted repository
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/prune.c | 1 | ||||
-rw-r--r-- | builtin/repack.c | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/builtin/prune.c b/builtin/prune.c index 04d3b12ae4..17094ad954 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -115,6 +115,7 @@ int cmd_prune(int argc, const char **argv, const char *prefix) expire = ULONG_MAX; save_commit_buffer = 0; check_replace_refs = 0; + ref_paranoia = 1; init_revisions(&revs, prefix); argc = parse_options(argc, argv, prefix, options, prune_usage, 0); diff --git a/builtin/repack.c b/builtin/repack.c index 3f852f35d1..2fe1b30d71 100644 --- a/builtin/repack.c +++ b/builtin/repack.c @@ -228,13 +228,17 @@ int cmd_repack(int argc, const char **argv, const char *prefix) get_non_kept_pack_filenames(&existing_packs); if (existing_packs.nr && delete_redundant) { - if (unpack_unreachable) + if (unpack_unreachable) { argv_array_pushf(&cmd.args, "--unpack-unreachable=%s", unpack_unreachable); - else if (pack_everything & LOOSEN_UNREACHABLE) + argv_array_push(&cmd.env_array, "GIT_REF_PARANOIA=1"); + } else if (pack_everything & LOOSEN_UNREACHABLE) { argv_array_push(&cmd.args, "--unpack-unreachable"); + } else { + argv_array_push(&cmd.env_array, "GIT_REF_PARANOIA=1"); + } } } else { argv_array_push(&cmd.args, "--unpacked"); |