Formato de entrada de arquivo do pacote Git
-
09-06-2019 - |
Pergunta
Meu entendimento do formato de arquivo do pacote Git é algo como:
Onde a tabela tem 32 bits de largura e as três primeiras palavras de 32 bits são o cabeçalho do arquivo do pacote.A última linha de 32 bits são os primeiros 4 bytes de uma entrada.Pelo que entendi, o tamanho da entrada é especificado por bytes consecutivos com o conjunto MSB, seguido por dados compactados.
No primeiro byte cujo MSB não está definido, o MSB faz parte dos dados compactados ou é uma lacuna?Se fizer parte dos dados compactados, como você pode garantir que, quando os dados forem compactados, esse bit não será definido?
Solução
Minha leitura do documentação do arquivo de pacote indica que o último byte do tamanho (deslocamento 15 no seu exemplo) teria o MSB definido como 0.
Outras dicas
Há também alguma documentação gráfica explicando alguns dos formatos aqui.Esta seção não está mais presente no livro da comunidade, mas ainda está disponível no local acima.