Johannes Schindelin <johannes.schinde...@gmx.de> writes:

> This option avoids unpacking each and all objects, and just verifies the
> connectivity.

That sounds like marketing ;-)

"Wow this does not unpack unnecessarily, wait, it needs to unpack
and parse 3 out of 4 kinds of objects?"

Jokes aside, given that you should regularly repack your repository
anyway, I do not think it is such a big downside that this mode
misses a corrupt objects, and the 1 out of 4 kinds of objects,
i.e. blobs, occupy major part of the repository storage, so this new
mode probably makes sense.

> diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
> index 922c346..2863a8a 100755
> --- a/t/t1450-fsck.sh
> +++ b/t/t1450-fsck.sh
> @@ -431,4 +431,26 @@ test_expect_success 'fsck notices ref pointing to 
> missing tag' '
>       test_must_fail git -C missing fsck
>  '
>  
> +test_expect_success 'fsck --quick' '
> +     rm -rf quick &&
> +     git init quick &&
> +     (
> +             cd quick &&
> +             touch empty &&
> +             git add empty &&
> +             test_commit empty &&
> +             empty=.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 &&
> +             rm -f $empty &&
> +             echo invalid >$empty &&
> +             test_must_fail git fsck --strict &&
> +             git fsck --strict --quick &&
> +             tree=$(git rev-parse HEAD:) &&
> +             suffix=${tree#??} &&
> +             tree=.git/objects/${tree%$suffix}/$suffix &&
> +             rm -f $tree &&
> +             echo invalid >$tree &&
> +             test_must_fail git fsck --strict --quick
> +     )
> +'
> +
>  test_done

I see a few impedance mismatch here.  For --quick, I would have
expected that the addition would be in t/perf/, not here.

Also the fact that quickness comes by cheating on blobs is an
implementation detail; in the future, perhaps somebody may come up
with a way to do a quick fsck while making sure blob corruption is
also detected.  The new test that expects "--quick" to ignore a
corrupt blob forbids such a progress.

If the option name was "--ignore-corrupt-blob", then the above
change is 100% justified, though.

--
To unsubscribe from this list: send the line "unsubscribe git" in

Reply via email to