GIT: Controle de versões distribuído para projetos de software

O desenvolvimento de projetos de software está a cada dia que passa mais colaborativo e integrado. Nesse artigo veremos como funciona um sistema de controle de versão VCS/SCM, abordando de forma mais ostensiva os sistemas de controle distribuído, mais detalhadamente o GIT, uma poderosa ferramenta criada por Linux Torvalds e bastante apropriada para o gerenciamento e controle de códigos fontes.

[ Hits: 75.109 ]

Por: Gleudson Junior em 13/02/2010 | Blog: http://www.gleudsonjunior.blogspot.com/


Controle de versionamento centralizado



Os sistemas de controle de versão centralizados, apesar de possuírem um processo de funcionamento bem mais simples que os distribuídos, proporcionam algumas vantagens relevantes em relação aos modelos distribuídos, várias dessas se referem justamente pela sua simplicidade e facilidade em centralizar, controlar e gerenciar os dados alocados em único repositório central.

Como especificado no próprio termo, os sistemas de controle de versão centralizados mantém as informações relativas aos arquivos em um repositório central, acessível a todos os desenvolvedores do projeto. Não é nada incomum ouvir-se dizer que esse modelo centralizado é uma arquitetura cliente/servidor.

Nota: o acesso dos desenvolvedores do projeto em relação aos dados do repositório deve responder as normas de segurança impostas ao sistema.

Em um sistema de controle de versão centralizado, cada colaborador (desenvolvedor) do projeto mantém uma cópia dos arquivos alocados no repositório central, além de armazenar alguns metadados*. No momento em que se efetua uma alteração em qualquer arquivo do projeto, o desenvolvedor faz uma atualização desses arquivos no repositório, tornando públicas suas mudanças. Esse processo se dá por um comando conhecido como commit.

Um dos pontos culminantes que se deve ressaltar em um modelo de controle centralizado, é a facilidade de se controlar o acesso aos arquivos de um determinado projeto, devido ao fato de as informações encontrarem-se reunidas em apenas um único repositório central.
Linux: GIT: Controle de Versões Distribuído para Projetos de Software
Figura 2: modelo de controle de versão centralizado
Também por conta da simplicidade de implementação desse modelo, os VCS centralizados apresentam algumas desvantagem em relação aos distribuídos, fazendo com que se tornem notoriamente pouco referenciados para implantação em ambientes de desenvolvimento com maior nível de complexidade, ou ainda quando os colaboradores se vêem "ilhados" geograficamente e não contam com uma conexão estável e direta com o repositório central. Dessa forma pode-se dizer que o modelo centralizado é extremamente dependente do repositório central onde estão alocados todos os dados referentes ao projeto, de tal maneira que um desenvolvedor nunca poderá obter qualquer informação de arquivos sem que este esteja alocado no repositório central e passível de acesso através de uma conexão direta, apesar de que esta restrição não impede que o desenvolvedor continue editando os arquivos.

Embora seja bastante vantajoso manter um único repositório por questões que envolvem a segurança do controle de acesso ao mesmo, isto pode se tornar um grande problema quando não existe uma política segura e confiável de backups. É interessante dizer que a escolha da melhor política de backup para um repositório de dados, é variável de acordo com a maneira que o VCS aloca os arquivos e seus metadados, isso se dá pelo fato de alguns VCS se utilizarem de uma arvore de arquivos lógicos ordenados para manter suas informações, quando outros tendem a adotar um banco de dados para tal fim.

________________________________________
* Metadados: dados sobre outros dados, relacionados a esses arquivos, que serve para equiparar com as informações já existentes no repositório.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução a VCS/SCM
   2. Entendendo seu funcionamento
   3. Controle de versionamento centralizado
   4. Controle de versionamento distribuído
   5. Introdução ao Git
   6. Por que o Git?
   7. Utilização básica do Git
   8. Conclusão
Outros artigos deste autor

Proxy Squid com autenticação + Sarg + Webmin

Transformando seu Ubuntu Hardy em OSX Leopard

Protegendo o ESB: Conceitos e técnicas de segurança para empresas de serviços web críticos

Criando dispositivos RAID via software no Linux

Leitura recomendada

Dm-crypt - Criptografia no filesystem - Kernel 2.6

RAID, tudo que você precisa saber

Trabalhando com init no Debian

File Globbing ou Englobamento - Introdução

Tunando sistemas de arquivos para GNU/Linux

  
Comentários
[1] Comentário enviado por mbmaciel em 13/02/2010 - 12:34h

Excelente artigo!

[2] Comentário enviado por isaque_alves em 13/02/2010 - 12:44h

Muito bom mesmo... merece nota 10...

[3] Comentário enviado por corvolino em 13/02/2010 - 21:47h

Estava procurando algo sobre git e achei por acaso em destaque aqui,favoritado!

Assim que tiver tempo irei ler tudo com prazer,gratz

[4] Comentário enviado por luizvieira em 15/02/2010 - 06:23h

Excelente artigo. Parabéns!

[5] Comentário enviado por gleudson junior em 17/02/2010 - 15:19h

Pessoal,

Só uma correção no link para download do artigo em PDF.

Link correto:

http://docs.google.com/fileview?id=0B9IwEgNkSODyMTMwMzViYTQtYzJmYi00YTg4LThiMzMtMzgyZmQ3Y2EwMzM0&hl=...


[6] Comentário enviado por albfneto em 19/02/2010 - 12:42h

Muito bom artigo. coloquei nos favoritos, porque uso Sabayon , Gentoo e Funtoo e eles usam muito GIT.

[7] Comentário enviado por HelderC em 25/10/2010 - 10:21h

Excelente artigo.

Só uma correção: Quando você dá o comando: $ sudo apt-get install git giltk

O último pacote que vc disse giltk não seria gitk?

[8] Comentário enviado por gabrielsimas em 11/11/2010 - 16:53h

Rapaz, que artigo excelente, eu estava mesmo precisando de uma elucidação "RFC-Like", meus parabens, estou usando-o como referência. Caso você tenha algum tempo disponível, poderia compartilhar conosco uma atualização deste seu artigo. Você inclusive me encorajou a escrever um artigo sobre Desenvolvimento.

Abraços e sucesso!

[9] Comentário enviado por gleudson junior em 03/01/2011 - 21:32h

@HelderC

vc tem razão! Foi um erro na digitação

@gabrielsimas

Os arquivos ligados ao artigo estão em:

Artigo: https://docs.google.com/uc?export=download&id=0B9IwEgNkSODyN2Y2MjVmYjItY2I4Mi00Nzc1LWJjODktNWZlYTk4O...

Apresentação: https://docs.google.com/uc?export=download&id=0B9d9yvBQOo7EN2I4Nzg3ZjYtYWVjNS00NjRiLWFhNzItY2Q0NDVlO...

[10] Comentário enviado por israelborgess em 17/01/2011 - 01:46h

Gleudson, estou com uma dúvida quanto ao GIT, gostaria se possivel da sua ajuda:
Estou tendo dificuldade em criar grupos de repositorios com as permissões. Teoricamente eu entendi que quando preciso criar um novo projeto eu edito o arquivo gitosis.conf e crio com a seguinte estrutura:

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = local@root

[group Desenvolvimento]
writable = Desenvolvimento
members = usuario@term00208n

Sendo que a chave pública o "usuario" com permissão de escrita no diretorio à ser criado terá que estar dentro do diretorio keydir. Entendi tambem que as permissões são realizadas atraves destas chaves públicas de cada usuário. Mas acontece que neste exemplo, digamos que eu tenha outro usuário, usuario2@term001213. Este usuário não teria acesso a este projeto. Porém quando eu clono o diretorio gitosis-admin.git eu consigo logo apos alterar os arquivos deste projeto e executar um "push" logo em seguida. Não tendo permissões para isso!! Não sei se fui claro, mas este usuario2 não deveria ter a permissão neste projeto mas tem!


[11] Comentário enviado por albfneto em 17/08/2013 - 21:53h

sou novo no GIT. estou tentando hospedar minhas isos Sabayon no GITORIUS.

crio o meu diretorio Git loca tudo, no gitorisu ja crier meu repo, agora quero começar a usar, que seria "clonar" meu repo local, para o site Gitorius, mas

o site Gitorius fala para eu executar um comando para configurar o GIT, quando eu faço:

# git checkout master

no meu diretorio local, o git (feito com git init) vem uma mensagem de que o comando acima, só funciona num diretorio de trabalho.


[12] Comentário enviado por morvan em 25/08/2016 - 22:20h

Boa noite.
Gleudson Junior, estava eu à cata de rudimentos sobre o GIT, por estar no rol de cursandos justamente sobre referido software (aquela mania que alguns de nós possuem, de ir ao curso já um pouco munidos, para melhor se situar). Encontrei Elo para este estupendo artigo. Parabéns. Minucioso. Essencial.
Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts