Skip to content

Conversation

@ethomson
Copy link
Member

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.
@ethomson
Copy link
Member Author

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...

@pietbrauer
Copy link
Member

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! ✨

@pietbrauer pietbrauer merged commit 79b1745 into libgit2:master Mar 24, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants