Você é capaz de clonar localmente na VM usando uma URL do repositório de file:
?
git clone file:///srv/repos/git/myProj /tmp/myProj-clone
O protocolo file:
força as operações locais a usar um protocolo muito próximo do protocolo inteligente normal usado pelos git:
/ ssh:
/ smart- http:
URLs remotos. Especificamente, ele usa um protocolo baseado em pacotes em vez de aproveitar a otimização normal para operações locais (hardlinking / copying de objetos de repositório).
Você pode não ter memória suficiente para o servidor gerar o pacote necessário para sua operação de recepção. Ao fazer um teste, o clone / pull local, baseado em file:
, exercerá os recursos de geração de pacote de sua VM sem arrastar nenhum componente de rede para confundir o problema.
Existem várias variáveis de configuração que controlam a geração de pacotes :
- pack.window
- pack.depth
- pack.windowMemory
- pack.deltaCacheSize
- pack.deltaCacheLimit
Você pode ajustar seu repositório para gerar seus pacotes de maneira menos intensiva em memória (a eficiência de empacotamento provavelmente sofrerá como resultado).
Meu palpite é que 256MB (para sistemas operacionais e aplicativos?) é muito pequeno para esperar que (potencialmente) aplicativos com muita memória (como as operações de pacote do Git) funcionem rapidamente ou até mesmo corretamente.