Lentidão ao usar o Git em grandes projetos
Grandes projetos que utilizam servidores Git próprio rodando em partições como NFS, Gluster FSx e outras, podem sentir uma certa demora ao executar alguns comandos do Git. Veremos abaixo alguns procedimentos que visam configurar o cache no projeto para melhorar a performance das consultas e executar comandos de manutenção.
Pré-requisito
Antes de começar os passos, é necessário verificar os requisitos abaixo:
Habilitar a opção Modo Avançado.
Possuir um projeto Cronapp versionado no GIT.
Perceber lentidões atípicas ao utilizar o GIT.
Verificações
Antes do procedimento, devemos verificar se os diretórios node_modules dos projetos web e mobile estão marcadas no arquivo .gitignore. Essa pasta possui milhares de arquivos de bibliotecas usadas no projeto que não necessitam ser versionados, já que serão automaticamente baixados quando o projeto for executado em um ambiente diferente.
Para verificar se a pasta node_modules está configurada no .gitignore, acesse o tópico "Ignorar arquivos do node_modules" em Solução de conflitos do Git. Caso não esteja cadastrado, siga os passos indicados e, após isso, verifique novamente se a execução do GIT continua lenta.
Se o problema ainda persistir, siga os passos abaixo.
Passos
Os passos a seguir serão executados no terminal Cronapp, para acessá-lo, clique no ícone Terminal (destaque 1 da figura 1.1).
Figura 1.1 - Acesso ao terminal Cronapp
Para mais detalhes sobre os comandos executados, acesse a documentação oficial do GIT.
Configurações do repositório local
Os comandos abaixo alteram as configurações do seu repositório local no Cronapp.
O primeiro comando tem o objetivo de corrigir problemas de cache no sistema de arquivos.
$ git config core.fscache trueReduz a quantidade de arquivos do diretório .git.
$ git config gc.auto 256Atualiza a indexação dos arquivos sempre que o projeto for alterado, reduzindo o trabalho em comandos como o git diff e git status.
$ git config core.preloadindex trueVerifica quais arquivos foram alterados com base na data/hora, evitando o procedimento desnecessário de arquivos que não foram alterados.
$ git config core.fsmonitor trueOtimização do repositório local
Os comandos abaixo alteram as configurações do seu repositório local no Cronapp.
Limpa arquivos desnecessários e otimiza o repositório local.
$ git gc --auto --no-pruneAtualiza a indexação dos arquivos do projeto.
$ git update-indexExibe a condição atual para cada arquivo na árvore.
$ git status
É esperado que a primeira execução do git status demore um pouco, pois ele estará reconstruindo o cache, após isso ficará mais ágil.
Nesta Página