Nesse artigo vamos falar um pouco sobre o histórico do versionamento, e como a criação do git pela comunidade Linux ajudou em muito a propagar esse conceito que hoje trabalha desde códigos até projetos de criptomoedas.

O pai ta on!!
O versionamento é um conceito old-school, que engloba desde atualização de kernels (como veremos hoje) até a forma com que estamos mais habituados hoje, com versionamento de códigos.

Nesse artigo vamos falar um pouco sobre o histórico do versionamento, e como a criação do git pela comunidade Linux ajudou em muito a propagar esse conceito que hoje trabalha desde códigos até projetos de criptomoedas.


Histórico

Não é segredo para ninguém que o kernel do Linux é ‘opensource’ ou ‘código aberto’. Isso significa que qualquer pessoa pode abrir o código e fazer alterações nele, e até sugerir na comunidade melhorias nos códigos já existentes. Para isso é utilizado um sistema de versionamento de códigos.

Durante muito tempo (mais de 10 anos) as mudanças do código fonte do kernel eram compartilhadas via comunidade em forma de correção, contudo em 2002 o Linux iniciou a entrada em versionamento distribuído com a solução BitKeeper. A solução permaneceu no kernel por pouco tempo (até 2005), quando a empresa decidiu torná-la paga, o que a inviabilizou para o projeto.

Assim Linux Torvalds e a comunidade iniciaram o desenvolvimento da sua própria solução de versionamento distribuído, com o foco em tudo que estavam precisando: velocidade, simplicidade, e sobretudo desenvolvimento paralelo. Foi então que nasceu o GIT.


A importância do GIT

Note que versionamento como o CVS, SVN e etc já existiu muito antes do git, contudo o fato dele ser o padrão dentro de sistemas Linux, o fez ganhar uma força de aderência/aceitação da comunidade muito grande.

Adicione isso ao fato de que agora desenvolvedores e usuários do mundo todo poderiam sugerir de maneira rápida e simples alterações dentro do código, e que os contribuidores (moderadores) poderiam aceitar ou não essa alteração, só fez a ferramenta ganhar mais aceitação e admiração.

Limitações de velocidade e gerenciamento que o SVN possuía, (e nem vou entrar nos contras do CVS…) foram sanadas no GIT, e os benefícios ainda incluíam suporte a outros sistemas como Unix e Windows.

O ponto mais importante do GIT é o fato dele não possuir um ‘servidor centralizado’, ou seja, não há necessidade de se trabalhar com sincronia total com um servidor. Você simplesmente ‘baixa’ a versão atual do desenvolvimento principal, e inicia a sua própria linha de desenvolvimento. Quando todas as suas alterações estiverem concluídas, simplesmente envia essas alterações para fazer a junção (merge) com a linha principal:


Git e a comunidade Cripto

Percebeu que o git tem uma semelhança grande com a base de todas as criptomoedas: a blockchain.

Conceitualmente, uma blockchain é uma cadeia de blocos, onde cada bloco tem um dado, um hash, e o hash anterior, e para um bloco ser aceito dentro da cadeia é necessário que no mínimo 51% de toda a rede o aceite utilizando algoritmos de consenso (assunto para outro post).

Já no Git, não existe essa necessidade de verificação, qualquer pessoa que alterar o projeto pode dar um commit na linha master. Adicionado a isso é totalmente possível você reescrever o histórico no git com um –force, o que dentro de uma blockchain (séria) é praticamente impossível.

Contudo o importante aqui não é falar sobre as diferenças entre eles, e sim como um ajudou (e muito) o outro a crescer. Mesmo em cripto com poucas alterações como o bitcoin, sem um sistema distribuído de compartilhamento de códigos, seria muito difícil chegar aonde chegou, uma vez que as interações se limitariam os desenvolvedores.

Agora em criptos onde as alterações são mais frequentes como no ethereum, sobretudo agora com o advento do The Merge, as interações de códigos, e até os forks para testes em ‘cópias’ dos projetos seria impossível.

That’s all folks! Be Happy!!!

foto-thiago-marques

Thiago Marques
Technical Account Manager
thiago.marques@darede.com.br

Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.

OUTRAS PUBLICAÇÕES

Entendendo Docker

O Docker é uma das melhores plataformas para o deploy de uma aplicação. Para entender sua funcionalidade, confira esse artigo em nosso blog!

Nós usamos cookies para garantir e oferecer a melhor experiência de navegação em nosso site! Mais informações