GTTreeBuilder: don't add blob data lazily by ethomson · Pull Request #566 · libgit2/objective-git
Add the blob data to the object database immediately in [GTTreeBuilder addEntryWithData], instead of queueing it up. This enables strict object validity checking, prevents us from hashing the file twice (once to compute the OID to give to addEntryWithOID, and again when adding to the object database) and reduces memory overhead.
Don't add the blob data lazily to the object database (during tree creation), which would prevent strict object validity checking from functioning. In addition, this prevents us from hashing the file twice (once to compute the OID, again when adding to the object database) and reduces memory overhead.
Note, of course, that I'm missing the historical context here. So I may be missing the use case that this enables. I think that in the general case, removing this is probably the right thing, but if there's value here then it could be optional instead...
Seem like the initial implementation was made back in 2013 (1f203eb) but it seems to have no specific reason to write the data to the odb at once.
This also fixes the test for the 0.24.0 which is stricter with writing the correct objects, so my guess is: Because libgit2 did not complain back then it was ok to do it like that. Now that it is complaining we should think of the proper way of doing it, which is this implementation.
Thanks so much for sorting this out! ✨
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters