
Hoje é um dia atípico, mas ele já se repetiu algumas vezes. Atualmente, tenho trabalhado com uma equipe de desenvolvedores e os projetos são mantidos em track, via Subversion. Há uns dois meses o
Everton J. Carpes, propôs que a equipe mudasse sua estrutura, entre essas mudanças poderíamos começar a usar o
Git, mas como ainda estamos em projetos que vinham do ano passado, não iniciamos as modificações, pelo menos na parte de do controlador de versão. As outras mudanças como a configuração do
LDAP e a utilização do
capistrano para gerenciar os sistemas dos clientes já está em andamento. Em termos de produtividade, isto é muito bom para a equipe e para os clientes.
Enquanto as mudanças não ocorrem, os problemas persistem. Hoje, ao iniciar o dia de trabalho, fiz o update básico para procurar atualizações dos plugins que a gente utiliza via SVN...
svn update, atualizando... enquanto atualizava o plugin validates_as_cpf do rails, ocorreu um erro de conexão, até aí tudo bem, é comum cair a conexão, mas para minha surpresa, todos os plugins que utilizamos referentes ao servidor
ossystems.com.br estavam dando erro 503:
svn: Requisição PROPFIND falhou em '/svn/plugonrails/plugins/validates_as_email'
svn: PROPFIND de '/svn/plugonrails/plugins/validates_as_email': 503 Service Not Available (https://projetos.ossystems.com.br)
E durante toda a tarde fiquei preso a uma tarefa que dependia do validates_as_cpf por não poder voltar à versão anterior. Esse é o fardo que se carrega ao usar um controlador de versão que não armazena um repositório local dos arquivos que você necessita. Se eu estivesse utilizando o Git, isso com certeza não estaria ocorrendo. Por isso, não usarei mais o svn no desenvolvimento dos projetos, pois algumas vezes o meu dia de trabalho pode ir por água abaixo, como foi hoje.
Esse, portanto, é um dos problemas comuns que se encontra quando utilizamos plugins direto do repositório ou qualquer tipo de webservice. Dependemos da disposição do servidor de terceiros, o que nem sempre é possível, pois há momentos em que um servidor pode estar em manutenção.
O Git resolve este problema, pois ele cria um repositório dentro de sua máquina, e enquanto você trabalha, tem como fazer commits dentro da máquina, e só ao final voce faz um commit utilizando o git-svn, que envia todos os commits da sua máquina para o servidor. Isto reduz muito a perda de produtividade devido à dependência de conectividade com a internet e disposição dos servidores.
Além do Everton, outros desenvolvedores Rails entraram na onda de utilizar o Git por ser o melhor a fazer, como o caso do
Fábio Akita que tem feito
propaganda massiva para que utilizemos o Git, ou até mesmo o Git-svn, que é uma forma interessante de utilizar o Git integrado ao subversion.
80 Responses to “Controladores de versão e a dependência externa”
Leave a Reply