git-p4 e tamanhos de arquivo enormes

git-p4 e tamanhos de arquivo enormes

Estou tentando converter um repositório Perforce (p4) para git (de preferência para Helix4Git, uma implementação de servidor git por perforce).

Reduzo meu problema a um simples caso de uso para encontrar a solução para meu problema maior.

No P4 eu tenho um arquivo//depósito/foo.txtque é 10 MB. Eu o "clonei" usando o comando merge do P4 então tenho o mesmo arquivo duas vezes em meu repositório, chamado//depósito/bar.txt.

//depot
    .. foo.txt (10MB) [internal-id==> 4509b9a8.txt]
    .. bar.txt (10MB, clone of foo.txt) [internal-id==> 4509b9a8.txt]

O servidor P4 armazena o arquivouma vezusando dois links internamente para reduzir o espaço em disco usado, de modo que apenas 10 MB sejam usados. Em um disco local, eu teria duas cópias físicas (10+10=20MB). Agora aqui está o problema:

eu usogit-p4para converter meu repositório P4 para git. Primeiro eu clonei-o em meu computador local e, em seguida, configurei um git-remote e enviei tudo para finalmente tê-lo em meu servidor git.

Conforme mencionado anteriormente, tenho 20 MB em meu disco local e quando o envio ao meu servidor git ele também usa 20 MB.

1) Se eu clonar um arquivo no git, ele também será clonado fisicamente no servidor?

2) Existe alguma chance de o git-p4 ou o servidor git detectar esse "clone" - que é o mesmo arquivo - e usar links internamente também? O próprio servidor git ou usando um recurso do sistema de arquivos (soft-link ou hard-link, etc).

Pergunta extra) O macOS APFS para o servidor git ajudaria aqui?

Muito obrigado!

Responder1

Quando você moveu os arquivos clonados para o Git, eles serão armazenadosseparadamente. O Git armazena apenas o conteúdo e as permissões do arquivo. Os metadados e o ID do inode não são rastreados.

Sua melhor aposta é adicionar o clone gitignoreou.git/info/exclude

Referência:insira a descrição do link aqui

informação relacionada