Em nossa empresa, temos um aplicativo que gera um grande número de arquivos de texto todos os dias (cerca de 30.000 arquivos totalizando cerca de 100 megabytes por dia). A maioria dos arquivos é gerada da mesma forma todos os dias, mas alguns arquivos têm diferenças de um dia para o outro. As informações sobre essas diferenças devem ser comentadas e armazenadas. As informações sobre o autor do comentário também precisam ser armazenadas (esses arquivos geralmente são manipulados por cerca de 5 a 10 pessoas)
A solução óbvia para esse problema é usar um repositório git. Pensei em organizar o trabalho da seguinte forma:
- Crie um repositório não-bare em uma pasta de rede e dê aos funcionários acesso a essa pasta. Instale um cliente git para funcionários.
- Adicione todos os arquivos ao repositório e crie um commit de inicialização
- Sobrescreva os arquivos no repositório todos os dias.
- Os funcionários acessarão a pasta de rede todos os dias e farão o commit das alterações nos arquivos.
E essa abordagem geralmente funciona. Mas devido ao enorme tamanho do repositório e ao fato de que a comunicação com o repositório é feita pela rede, é muito lento. Por exemplo, git status
pode levar de 5 a 10 minutos para executar. Outra opção que eu estava pensando é dar aos usuários acesso ssh\rdp ao computador do repositório, o que deve acelerar as coisas. Mas essa opção é muito complicada para os usuários. Como você resolveria esse problema? Eu realmente apreciaria qualquer sugestão que você possa ter, obrigado.
O git terá um desempenho ruim em compartilhamentos de rede, que não são armazenamentos locais rápidos. Semelhante a muitos bancos de dados.
O git mantém referências de commit pai para sempre, então o tamanho do repositório continua aumentando. Embora existam maneiras de baixar apenas alguns commits, ou reescrever o histórico, elas estão além do uso básico do git.
Centralize esse fluxo de trabalho.
Considere encontrar e usar uma interface web para um sistema de controle de versão. Selecione uma com o recurso de comentar sobre commits, como usuários pessoais. Automatize o procedimento de commit do próximo conjunto de arquivos em questão. Agora, em um navegador, clique no conjunto de alterações e publique um comentário.