A maneira mais fácil de fazer um padrão glob corresponder aos arquivos de pontos é usar o D glob qualificador .
**/*(D)
A precedência de ~ é menor que / , portanto, **~.hg/* é ** menos as correspondências de .hg/* . Mas ** é especial apenas se for antes de um / , portanto, ele corresponde aos arquivos no diretório atual. Para excluir .hg e seu conteúdo, você precisa
**/*~.hg~.hg/*(D)
Note que o zsh ainda irá percorrer o diretório .hg , o que pode levar algum tempo; essa é uma limitação de ** : você não pode definir uma lista de exclusão diretamente nesse nível.