Q:

Do Mercurial bundle files support internal integrity checks? 

I am working on a project with developers around the globe and we are using mercurial for our source control solution.  Currently, we communicate our change sets by creating bundles and posting to a mailing list.  A disagreement has arisen about best practices, and we have not been able to find an answer in the mercurial documentation. 
When creating a bundle, is there any sort of internal integrity check that occurs?  Or should we be sending digests along with the change set to ensure file integrity? 

A:

A bundle contains exactly the same data as the data transferred by the wire protocol.  Due to the way mercurial works, there's a recursive hashing scheme going on, so every revision must be uncorrupted in order to be used.