2. ENTENDENDO O FUNCIONAMENTO DO VCS/SCM

Para entendermos os itens três e quatro deste artigo, precisamos primeiro nos debruçar no que diz respeito ao funcionamento de um sistema de controle de versão, ou seja, devemos explanar os conceitos básicos relacionados ao modelo apresentado.

O controle de versionamento é basicamente dividido em dois segmentos: o repositório, que é responsável pelo armazenamento das informações e a área de trabalho (Desktop). O repositório como havia descrito acima, é responsável pelo armazenamento das informações relacionadas ao projeto, em modo persistente no sistema de arquivo escolhido, ou até mesmo em um banco de dados. Nele será guardado todo o histórico de desenvolvimento do projeto e registrado também qualquer tipo de modificação realizada nos arquivos nele alocados.

O responsável pelo desenvolvimento do documento nunca trabalha diretamente nos arquivos do repositório, ele deve antes obter em sua área de trabalho uma cópia local, também chamada de cópia de trabalho (Working Copy) que contém a copia da ultima versão de cada arquivo do projeto e esta deverá ser monitorada para identificar qualquer tipo de alteração realizada. Essa área geralmente fica isolada das demais. A comunicação e sincronização entre o repositório e a área de trabalho se dão por duas operações distintas: commit e update, como demonstrado na figura abaixo:

Figura 1: topologia básica de um sistema para controle de versão.

O commit é responsável por submeter um pacote contendo uma ou mais modificações realizadas durante o desenvolvimento na área de trabalho que é a origem, para seu destino que é o repositório. O update por sua vez faz o trabalho proporcionalmente inverso, isto é, ele envia uma cópia de trabalho da ultima versão estável contida no repositório para a área de trabalho do desenvolvedor. Cada operação de commit gera uma nova revisão no repositório, registrando sempre todas as modificações realizadas, data e autor. Criando uma alusão a operação, é como se uma revisão fosse uma “fotografia” de todos os arquivos e diretórios em um determinado tempo da evolução do projeto. Essas “fotografias” de tempos passados são armazenadas no repositório e podem ser analisadas ou restauradas sempre que for desejado e o conjunto dessas revisões é justamente o que chamamos de histórico do projeto.

Podemos subdividir o sistema de controle de versão basicamente em dois tipos, de acordo com a maneira que cada um deles garante o controle e o gerenciamento do seu repositório: centralizado e distribuído. Nos CVS centralizados as mudanças são feitas para um repositório central e único, ao contrário dos distribuídos, onde os desenvolvedores trabalham diretamente no próprio repositório.

Então agora podemos dizer que, tanto o controle de versionamento centralizado quanto o distribuído basicamente funcionam sob os repositórios e as áreas de trabalho. A distinção está justamente em como cada uma dessas revisões estão adornadas no processo como um todo.


Obs.: Caso prefiram, também podem baixar o artigo (completo) no formato PDF através do link:

Download:
GIT: Controle de Versões Distribuído para Projetos de Software

--
Gleudson Junior
Currículo: http://lattes.cnpq.br/9478031232169111
Fones: +55 81 9434-5060 / +55 86 9426-4654
Msn: gleudson_jr@hotmail.com
My WebPage: http://www.gleudsonjunior.blogspot.com/
About Linux: http://www.gleudson.blogspot.com/ - http://www.voolivrelinux.blogspot.com/

--
"Estou procurando um lugar que precise de muitas reformas e consertos, mas que tenha fundações sólidas. Estou disposto a demolir paredes, construir pontes e acender fogueiras. Tenho uma grande experiência, um monte de energia, um pouco dessa coisa de 'visão' e não tenho medo de começar do zero."
Steve Jobs

0 Comentários:

Postar um comentário

Work-Host

$ sudo sobre este blog...

O Blog Vôo Livre Linux foi criado com o intuito de unir e compartilhar conhecimentos, idéias, dúvidas e soluções ligadas ao sistema do Pingüim. O Blog também estará permanentemente aberto para novos interessados pelo Linux. Associe-se a esta filosofia!

$ sudo para refletir

“Nada é mais poderoso que uma ideia cujo o tempo chegou. O Linux!”

"Liberdade é um estado de consciência e espírito. Alguns desde há muitos já a desfrutam, enquanto outros, talvez jamais cheguem a te-la"

$ sudo pesquisar neste blog