Eu verifiquei o git annex como esperado, fazendo o seguinte:
- obtenha uma listagem de arquivos única e ordenada, incluindo o conteúdo .git (isso garante que tenhamos todos os conteúdos do anexo do git)
- obtenha uma listagem de links única e classificada incluindo o conteúdo .git (isso garante que tenhamos a mesma estrutura de repositório)
- compare as listagens de arquivos, ignore o diretório anexo / transferência, os objetos git podem ser diferentes, o conteúdo do git anexo deve ser idêntico
- comparar listagens de links, deve ser idêntico
- execute um git anexo fsck ou compare a soma de verificação para todos os arquivos (isso é um problema no sistema de arquivos)
Isso funciona, mas pode ser um pouco trabalhoso / intensivo. Além disso, o processo pode ser ainda mais complicado, tendo espelhos que são apenas cópias parciais. Para esses espelhos, você precisa apenas comparar o conteúdo que espera ter.