Entity hashing is done in content_hash#getEntityHashes.
- It works by looking at the 
entity_changestable and going through each of the entity names/types:blobsattributesrevisionsattachmentsnotesbranchesetapi_tokensoptions
 - For some reason 
note_reorderingentities are ignored specifically. - All the rows in 
entity_changesare then ordered alphabetically, based on theirentityId. - Every entity row is then grouped by 
entityNameand then by sector. The sector is defined as the first character of theid. - The hash is altered to add the 
isErasedvalue as well since the hash of deleted entries is not updated. - For each sector, the hash is calculated using 
utils.hash, using SHA1 encoded as Base64.