Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTTreeBuilder: don't add blob data lazily #566

Merged
merged 1 commit into from
Mar 24, 2016
Merged

GTTreeBuilder: don't add blob data lazily #566

merged 1 commit into from
Mar 24, 2016

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