gitbase: implement table checksums #670
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #661
Depends on src-d/go-mysql-server#583
Tests will fail until that PR is merged and this is updated.
Basically, this implements the new
sql.Checksumable
interface in each table so the engine can perform the checksums on the repos.How is the checksum implemented?
With a hash built using the repo ID, all the reference names and the hashes they point to and the checksum of all their packfiles.
If there's a single thing of those that changed, the checksum will be different.
Bad part of this? Pool is needed again in the tables :/ The checksums are checked as part of the init phase of the engine, and there is no context to get the repos from.