Versões recentes do Mercurial (desde 1.5) suportam a validação de dados recebidos. Adicionar
[server]
validate = True
para a configuração hg do seu servidor (o .hg/hgrc
ou a configuração do hgwebdir deve funcionar bem) para que o servidor verifique os dados recebidos e recuse os pushes inválidos. O cliente verá um erro semelhante a:
remote: abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
Espero que ajude!