Re: [PATCH v6 17/19] fsck: Introduce `git fsck --quick`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Junio,

On 2015-06-21 22:35, Junio C Hamano wrote:
> Johannes Schindelin <johannes.schindelin@xxxxxx> writes:
> 
>> On 2015-06-21 19:15, Junio C Hamano wrote:
>> Michael Haggerty <mhagger@xxxxxxxxxxxx> writes:
>>> That's brilliant.
>>>
>>> Just to make sure I am reading you correctly, you mean the current
>>> overall structure:
>>>
>>> [...]
>>
>> The way I read Michael's mail, he actually meant something different:
>> if all of the blob-related errors/warnings are switched to "ignore",
>> simply skip unpacking the blobs.
> 
> That is how I read his mail, too.
> 
> But because IIRC we do not check anything special with blob other
> than we can read it correctly, my description of "overall structure"
> stayed at a very high conceptual level.  The unpacking may happen at
> a much higher level in the code, i.e. it comes way before this part
> of the logic flow:
> 
>         if ("is bad_blob ignored?")
> 		;
> 	else if (! "is the blob loadable and well-formed?") {
> 
> in which case "is bad blobs ignored?" check may have to happen
> before we unpack the object.
> 
> And I do not suggest introducing yet another BAD_BLOB error class; I
> would have guessed that you already have an error class for objects
> that are not stored correctly (be it truncated loose object, checksum
> mismatch in the packed base object, or corrupt delta in pack).

Sadly, there is no BAD_BLOB class. The reason is that we actually perform no test on blobs, as you pointed out, except for the implicit one: read it as a blob object.

And reading them even only partially would still imply a lot of I/O, taking away much of the performance improvement I wanted to achieve here.

Further, please note that the `--quick` option *solely* impacts `git fsck`, not `git receive-pack`, because we actually really skipped everything except the connectivity test.

To allow this discussion to be resolved without further ado, I therefore renamed the `--quick` option to `--connectivity-only`, as even I realize that there is not much of a check left if not even author or committer lines are tested.

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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]