CONTROLE DE VERSÕES
O QUE É CONTROLE DE VERSÃO
Com o gradual crescimento
de projetos de média e alta complexidade é muito comum que vários programadores
que estejam em lugares distintos manipulem os mesmos arquivos. O controle de
versão gerencia estes projetos através de históricos nos quais registra-se toda
a evolução do projeto, todas alterações sobre cada um dos arquivos, permitindo
saber o que, quando e onde foi feita uma determinada alteração, proporciona o trabalho
conjunto entre vários programadores evitando que um sobrescreva o código do
outro. Também mantém linhas diferentes de evolução do mesmo projeto. Por
exemplo, mantendo uma versão 1.0 enquanto a equipe prepara uma versão 2.0
COMO FUNCIONA?
O controle de versão é composto de duas partes(Figura 1): o
repositório e a área de trabalho. O repositório armazena todo o histórico de
evolução do projeto, registrando toda e qualquer alteração feita em cada item
versionado.
O desenvolvedor não trabalha diretamente nos arquivos do repositório.
Ao invés disso, usa uma cópia de trabalho que seria o clone dos arquivos do projeto e
que é monitorada para identificar as mudanças realizadas. Essa área é
individual é isolada das demais áreas de trabalho.
Figura 1. Controle de
versão.
- O repositória seria como um
servidor central, onde os dados do projeto são armazenados.
- As estações seriam onde os
programadores estão trabalhando no desenvolvimento do sistema.
INTRODUÇÃO AO GIT
O GIT é um controle de versão distribuído
que foi desenvolvido pelo Linus Torvalds para ajudar no desenvolvimento do
kernel do Linux. O
desenvolvimento do GIT começou em 3 de Abril de 2005. A primeira mescla de
arquivos (Merge) de múltiplos “ramos” (Branches) foi realizada em 18 de Abril.
Torvalds alcançou seus objetivos de performance em 29 de Abril, o recém-nascido
Git se tornou referência ao registrar patches para o Linux com altas taxas em
performance. No dia 16 de Junho, a entrega do kernel 2.6.12 foi gerenciada pelo
GIT.
Mesmo que fortemente influenciado pelo antigo controle de versão
BitKeeper, Torvalds deliberadamente tentou evitar abordagens tradicionais,
levando a um design único. Ele desenvolveu o sistema de controle de versão GIT
até que fosse possível sua utilização por usuários técnicos, entregando então a
manutenção do software para Junio Hamano, um dos principais colaboradores do
projeto. Hamano foi responsável pela entrega da versão 1.0 em 21 de dezembro de
2005, e continua como responsável pela manutenção do GIT.
VANTAGENS DO GIT
A maioria das controles de versão
trabalham de forma centralizada(figura 2), isso quer dizer que as versões alteradas
dentro de um sistema vão ser guardadas somente no repositório, e na estação
fica apenas uma versão.
Figura 2. Sistema de
versão centralizada.
O Git é é um sistema distribuído(Figura 3), ou seja, cada desenvolvedor
possui no seu ambiente de desenvolvimento um repositório com todos os
históricos e habilidade total de controle das revisões, não dependente de
acesso a uma rede ou repositório central, o fato de quase todas as operações
serem feitas localmente gera uma vantagem enorme em ganho de velocidade em relação à sistemas
centralizados.
Ramificação(branching) e mesclagem(merging), essas
talvez sejam umas das características mais interessantes do Git. Criar um
branch significa dizer que você vai divergir da linha principal de
desenvolvimento e continuar a trabalhar sem bagunçar essa linha principal. Em
muitas ferramentas de controle de versão, este é um processo um pouco caro,
muitas vezes exigindo que você crie uma nova cópia do seu diretório de código-fonte,
o que pode levar um longo tempo para grandes projetos. Algumas
pessoas se referem ao modelo de ramificação em Git como sua característica mais
forte. A forma como o Git cria branches
é inacreditavelmente leve, fazendo com que as operações com branches sejam
praticamente instantâneas e a alternância entre os branches seja tão rápida
quanto. Ao contrário de muitos outros sistemas de controle, o Git incentiva um
fluxo de trabalho no qual se fazem branches e merges com frequência, até mesmo
várias vezes ao dia. Compreender e dominar esta característica lhe dará uma
ferramenta poderosa e única e poderá literalmente mudar a maneira de como você
desenvolve.
Figura 3. Sistema de versão distribuído.
Outra vantagem interessante seria a forma com que ele trabalha
cada projeto, que são divididos em três estágios(Figura 4):
- Working Directory: Seria
o diretório onde desenvolvedor está trabalhando no projeto. Ele é criado quando
se copia do repositório a base do sistema para ser trabalhado na estação.
- Staging Area: Após o
comando de “git add”, todos arquivos que estavam sendo editados passam para um
estágio intermediário, seria uma sala de espera onde os arquivos já modificados
ficam antes de retornarem ao repositório.
- Git Directory: Após o
comando “git commit” estes arquivos vão para o repositório final que é a base
de onde foi retirada. Estes estágios dão ao Git uma flexibilidade e uma
confiabilidade maior em relação aos demais sistemas de controle, tornando o
trabalho mais simples.
Figura 4. Três estágios do Git.
Nenhum comentário:
Postar um comentário