From: Jeff King Date: Thu, 24 Sep 2015 21:05:30 +0000 (-0400) Subject: fsck: don't fsck alternates for connectivity-only check X-Git-Tag: v2.8.3~32^2~23 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fbe85e73ce425b25c15f0b1f3900a9bf895a9793?ds=sidebyside;hp=--cc fsck: don't fsck alternates for connectivity-only check Commit 02976bf (fsck: introduce `git fsck --connectivity-only`, 2015-06-22) recently gave fsck an option to perform only a subset of the checks, by skipping the fsck_object_dir() call. However, it does so only for the local object directory, and we still do expensive checks on any alternate repos. We should skip them in this case, too. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- fbe85e73ce425b25c15f0b1f3900a9bf895a9793 diff --git a/builtin/fsck.c b/builtin/fsck.c index 079470342f..46c7235180 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -678,16 +678,17 @@ int cmd_fsck(int argc, const char **argv, const char *prefix) git_config(fsck_config, NULL); fsck_head_link(); - if (!connectivity_only) + if (!connectivity_only) { fsck_object_dir(get_object_directory()); - prepare_alt_odb(); - for (alt = alt_odb_list; alt; alt = alt->next) { - char namebuf[PATH_MAX]; - int namelen = alt->name - alt->base; - memcpy(namebuf, alt->base, namelen); - namebuf[namelen - 1] = 0; - fsck_object_dir(namebuf); + prepare_alt_odb(); + for (alt = alt_odb_list; alt; alt = alt->next) { + char namebuf[PATH_MAX]; + int namelen = alt->name - alt->base; + memcpy(namebuf, alt->base, namelen); + namebuf[namelen - 1] = 0; + fsck_object_dir(namebuf); + } } if (check_full) {