Pergunta

Pergunta simples, eu estou tentando executar git gc em uma máquina com uma quota. Pré-gc, estou em cerca de 18GB de uso, quase todos que é o meu clonado git repositório. Meu limite rígido é de 25 GB. Durante a operação git gc, arquivos temporários suficientes são gravados em disco para bater o meu limite e, assim, causar a operação git gc a falhar.

Eu posso excluir o .git/objects/pack/tmp_pack_* após a operação falhou e voltar até 18GB de uso, mas eu realmente gostaria de git gc realmente completa e recuperar um pouco o desempenho.

Existe alguma opção de fantasia (ou uma série de outros comandos do git) que eu possa usar que não envolve primeira escrita> 7 GB de arquivos temporários para o disco?

Foi útil?

Solução

Que parte do gc é importante para você? Você poderia tentar executar as peças git-prune e git-repack separadamente. Com git-prune, certifique-se e especificar uma data de corte com a opção --expire. Se há uma tonelada de objetos soltos no seu repo, levando-os para fora do caminho primeira seria útil. *

Com git-repack, talvez você possa mexer com as configurações de profundidade e janelas para obter algo pequeno o suficiente para ser executado dentro do espaço que você tem.

* Não tenho a pretensão de compreender plenamente todas as questões envolvidas, mas eu aviso que a poda vem após o repack no código git-gc.

Outras dicas

Parece que a melhor solução é pedir a TI de uma quota maior, embora eu ainda estou interessado em ouvir soluções alternativas. Hoje eles estavam se sentindo generoso, mas amanhã ...:)

git prune é uma excelente sugestão, boa chamada Jefromi.

Outra coisa que você pode fazer é comprimir os seus outros arquivos; git gc; descomprimir.

7z recebe compressão incrível, mas não preserva hardlinks e Unix proprietário / grupo, IIRC. Se você tem uma quota, os arquivos são, provavelmente, todos de propriedade da sua conta, então não se preocupe sobre a primeira pontuação. Mas o mais seguro é tar c --lzma se você tem isso, ou apenas tar czf ou cjf. Se você tem um monte de arquivos pequenos, o umm, externo (?) De fragmentação até block-size pode ser significativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top