Como posso melhorar o desempenho CVS em um cenário multi-site?
-
02-07-2019 - |
Pergunta
Eu estou trabalhando atualmente em um projeto com desenvolvedores trabalhando em três locais. Um dos sites está em Delhi, na Índia, enquanto os outros dois estão na Europa. A comunicação entre os escritórios europeus e o escritório em Delhi tem baixa largura de banda e latência muito ruim, e uma atualização CVS de lá muitas vezes leva 5-10 minutos, embora apenas alguns arquivos foram alterados.
Existe algum proxies boa CVS lá fora, ou qualquer maneira elegante de manter servidores CVS separados em sincronia? Você tem outras dicas sobre como o desempenho pode ser melhorado nesse cenário?
Infelizmente, nós vai ser preso com CVS durante o escopo deste projeto, para mudar para algo completamente diferente não é uma opção no curto prazo.
Solução
Por que não é a mudança é uma opção?
Eu recomendo para mudar para o SVN ou git vez. E que você fazer esta conversão o mais cedo possível ... como hoje:)
Há mesmo svn ferramentas / guias e git ferramentas / guias lá fora, que vai fazer esta conversão CVS para você.
Eu pessoalmente uso e amor SVN para o meu trabalho, mas com base na sua descrição acima, parece que git pode ser a melhor opção para você.
Outras dicas
Aqui está o que eu fiz há muito tempo em circunstâncias semelhantes quando a largura de banda e as redes não confiáveis ??eram um problema:
- Faça uma cópia do repositório e instalá-lo no local remoto. Você sabe que tem CVS1 e CVS2.
- Bloqueio de uma das duas cópias (CVS1), impedindo commits. Isto é conseguido através da modificação 'commitinfo' no módulo CVSROOT.
- CVS1 pode ser usado para atualizações somente
- CVS2 pode ser usado para atualizações e comprometer
Quando você quiser dar acesso em comprometer-se a copiar 1, faça o seguinte:
- Bloqueio CVS2
- Copiar CVS2 para CVS1
- Unlock CVS1
Este sons complicado, e é se você fazê-lo manualmente, mas funciona. Ele requer um pouco de disciplina, se você fazê-lo manualmente. Pode ser fusos horários estão do seu lado pela primeira vez.
Eu escrevi uma ferramenta para manter o controle de quem tinha a cometer repositórios de transferência de token e a partir de um local para outro automaticamente via rsync e SSH. Funcionou muito bem para um par de anos. Nós nunca perdeu quaisquer dados e levou cerca de 5 minutos para transferir o sinal de um local para outro.
A ferramenta de transferência foi escrito em perl e ele me levou cerca de duas semanas para desenvolvê-lo, trabalhar nele em tempo integral.
Eu sei que há muito tempo os desenvolvedores do FreeBSD usado CVSup mas eu nunca usei essa ferramenta eu.