Limpando o repositório git grande e nulo falha

1

Não consigo limpar um repositório do git. Se eu tentar, recebo esta mensagem de erro:

$ git gc
Counting objects: 8828, done.
fatal: Cannot handle files this big
error: failed to run repack

Se eu pesquisar no Google, existem literalmente apenas dois resultados: essa pergunta e a mensagem de erro como uma entrada pastebin que foi enviada 2 minutos depois de eu ter postado a pergunta pela primeira vez aqui. Então, ninguém mais parece ter o problema.

Concedido, há um arquivo de 4,8 GB rastreado com git e git leva cerca de 8 a 9 GiB de RAM virtual no meu laptop ao executar git gc e meu raspi tem apenas 1 GB de memória física. No entanto, ele geralmente tem uma troca de 1 GiB e acabei de adicionar uma troca de 30 GiB para fazer essa operação. Então deve ter memória suficiente.

Infelizmente, a mensagem de erro não contém o motivo pelo qual o comando de limpeza não pode lidar com arquivos tão grandes. Então eu não sei qual é a propriedade limitadora do meu sistema.

Qual é o problema e é possível fazer a limpeza no pi de framboesa? (Transferi-lo para um computador desktop não parece ser uma boa solução para mim.)

Na verdade, planejei limpar alguns repositórios maiores usando meu raspi porque ele é executado de qualquer maneira e, desse modo, talvez não seja necessário que meu computador funcione por horas.

Eu achei que talvez clonar o repositório renderia um repositório limpo. No entanto, recebo esta saída:

$ git clone ../Documents
Cloning into 'Documents'...
done.
fatal: Cannot handle files this big   
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

No entanto, adicionar --bare ao comando clone retorna instantaneamente sem erros. (Provavelmente alguma magia ext4 acontecendo para que os arquivos sejam copiados durante a gravação.) É desnecessário dizer que nenhuma limpeza estava acontecendo. Mas isso pode conter uma pista, então deixo você saber sobre isso.

    
por UTF-8 08.06.2016 / 19:00

1 resposta

1

Foi um erro no git. Eu disse aos caras da lista de discussão sobre os problemas e eles consertaram. Os patches estão nos últimos lançamentos.

    
por 28.09.2016 / 21:21

Tags