Buscar

Sistema de controle de versão

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistema de controle de versão 
*André da Silva Galvão 
SVN 
O SVN é um sistema de controle de versão open-source que gerencia arquivos e diretórios 
controlando as alterações realizadas ao longo do tempo. Além disso, é possível recuperar 
versões anteriores ou visualizar o histórico de alterações. Tem como ponto forte a utilização em 
rede, possibilitando que vários usuários possam trabalhar colaborativamente. Permite que você 
recupere versões antigas de seus dados, ou que examine o histórico de suas alterações. É um 
sistema de caráter geral que pode ser usado para gerenciar quaisquer conjuntos de arquivos 
(código-fonte, arquivos de edição de vídeo, etc.) 
O SVN utiliza o conceito de branches, tags e trunk: 
Trunk: pasta que contém os projetos que estão em desenvolvimento. Todas as atualizações 
efetuadas dia-a-dia são armazenadas nesta pasta. 
Branches: pasta que contém “linhas de desenvolvimento” de tal projeto, que entre elas pode 
haver poucas diferenças, porém uma independe da outra. Quando o projeto está pronto para 
ser liberado como uma versão estável, a pasta trunk é copiada para a pasta branch e dado um 
nome de versão. Este branch é congelado, não sofrendo mais alterações, apenas correções. Os 
testes são efetuados. 
Tags: quando os testes efetuados na branch estão completos, a versão que se encontra na 
branch é copiada para a pasta tags, criando a “release”. A pasta tag é empacotada e enviada 
para o cliente. Qualquer modificação em branch, deve ser copiada para a pasta de tags, após 
todos os testes. O SVN considera tag apenas uma variação de um branch, e na prática é 
exatamente como um branch, apenas uma cópia da ramificação atual da árvore. 
História 
No início do ano de 2000 a empresa CollabNet, Inc iniciou um trabalho para a construção de um 
software de controle de versão utilizando o CVS como base. Em decorrência dos bugs e 
limitações do CVS, a CollabNet optou por iniciar a construção do zero. Em fevereiro deste mesmo 
ano, a CollabNet entrou em contato com Karl Fogel, o autor do Open Source Development with 
CVS (Coriolis, 1999), para que ele pudesse participar deste novo projeto. Coincidentemente, Karl 
Fogel já estava discutindo um projeto de um novo sistema de controle de versão com Jim Blandy, 
juntos criaram em 1995 empresa Cyclic Software (empresa prestadora de contratos de suporte 
CVS) e apesar de terem vendido a empresa, eles ainda trabalhavam com o CVS em seus projetos. 
A partir dos problemas enfrentados, Jim começou a idealizar melhores soluções para gerenciar 
versões, idealizando inclusive o nome Subversion. Assim, Karl Fogel foi trabalhar no projeto da 
CollabNet e Jim Blandy conseguiu uma licença de seu empregador para poder participar do 
projeto. O Subversion logo atraiu a comunidade de desenvolvedores e descobriu-se que muitos 
possuíam experiências frustrantes com o CVS. A equipe do projeto original propôs o simples 
objetivo de manter os recursos do CVS, incluindo a sua arquitetura, mas sem os problemas 
constantes, facilitando a migração do CVS para o SVN. O SVN começou a ser utilizado pelos 
desenvolvedores para gerir seu próprio código-fonte em 31 de agosto de 2001. Um marco 
importante para o SVN foi a integração com o Apache Software Foundation (ASF), que iniciou 
em 2009. No início de 2010, o Subversion foi totalmente adotado na família do ASF de projetos 
de nível superior, transferindo o projeto para http://subversion.apache.org, e foi rebatizado de 
"Apache Subversion 
Funcionalidades: Versionamento de diretórios; Versionamento de renomeação, cópia e 
exclusão; Commits atômicos; Merge tracking; Bloqueio de arquivos; Resolução de conflitos 
interativos. 
Ferramentas de apoio: Apache Subversion: versão oficial do Subversion; VisualSVN Server: 
implementação em Windows. É uma ferramenta prática e fácil de instalar o servidor SVN oficial. 
Possui um ambiente gráfico de gerenciamento e permite a visualização do conteúdo dos 
repositórios diretamente pelo navegador; TortoiseSVN: considerada a melhor ferramenta 
gráfica para utilização do SVN em ambiente Windows; RabbitVCS: ferramenta gráfica para 
utilização do SVN em Linux inspirada no TortoiseSVN; Commit Monitor: permite o recebimento 
de alertas a cada commit realizado nos repositórios SVN; CruiseControl e CruiseControl.NET: 
ferramentas de Integração Contínua. 
 
Git 
O Git é um sistema de controle de versão distribuído de código aberto e gratuito, projetado para 
lidar com tudo, de projetos pequenos a grandes, com velocidade e eficiência. O Git é fácil de 
aprender e tem uma pegada minúscula com desempenho extremamente rápido. Ele ultrapassa 
as ferramentas de SCM como Subversion, CVS, Perforce e ClearCase com recursos como 
ramificação local barata, áreas de preparação convenientes e vários fluxos de trabalho. Cada 
diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de 
acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central. 
O Git também facilita a reprodutibilidade científica em uma ampla gama de disciplinas, da 
ecologia à bioinformática, arqueologia à zoologia. O Git é um software livre, distribuído sob os 
termos da versão 2 da GNU General Public License. Sua manutenção é atualmente 
supervisionada por Junio Hamano. 
História 
O desenvolvimento do Git surgiu após vários desenvolvedores do kernel (núcleo) do Linux 
decidirem desistir de acessar ao sistema do BitKeeper, que é um software proprietário. O acesso 
gratuito ao BitKeeper foi removido pelo detentor dos direitos autorais, Larry McVoy, depois de 
acusar Andrew Tridgell de usar de engenharia reversa nos protocolos do BitKeeper, alegando 
violação da licença do mesmo. Tridgell demonstrou, em uma apresentação na Linux.Conf.Au, 
realizada em 2005, que o processo de engenharia reversa utilizado não foi mais do que 
simplesmente direcionar um telnet para a porta apropriada de um servidor BitKeeper e digitar 
help. Torvalds queria um sistema distribuído que ele pudesse utilizar de forma similar ao 
BitKeeper, mas nenhum dos sistemas gratuitos disponíveis atendia suas necessidades, 
particularmente com relação à performance. 
Características 
O projeto do Git é uma síntese da experiência de Torvalds com a manutenção do 
desenvolvimento altamente distribuído do projeto do Linux, junto com seu íntimo 
conhecimento de performance de sistemas de arquivos e a necessidade urgente de produzir um 
sistema funcional em um curto espaço de tempo. Essas influências o levaram às seguintes 
escolhas de implementação: Suporte consistente para desenvolvimentos não lineares. O Git 
suporta rápidas criações de ramos e mesclas, e inclui ferramentas específicas para visualização 
e navegação de históricos de desenvolvimento não lineares. Uma suposição intrínseca no Git é 
que uma mudança será mesclada mais do que é escrita, enquanto é passada por vários revisores. 
Desenvolvimento distribuído 
Assim como o Darcs, o BitKeeper, o Mercurial, o SVK, o Bazaar e o Monotone, o Git dá a cada 
desenvolvedor uma cópia local completa de todo o histórico de desenvolvimento, e as 
mudanças são copiadas de um único repositório para outro. Estas mudanças são importadas 
como ramos adicionais de desenvolvimento, e podem sofrer uma mescla da mesma forma que 
um ramo de desenvolvimento local. 
Compatibilidade com protocolos/sistemas existentes: Repositórios podem ser publicados por 
HTTP, FTP, rsync, um protocolo Git sobre uma porta conhecida ou por ssh. O Git também tem 
uma emulação de servidor CVS, o que habilita a existência de clientes CVS e extensões (plugins) 
em diversos ADIs a utilizar os repositórios Git. O Subversion e o svk podem utilizar os repositórios 
diretamente com o git-svn. 
Manipulação eficiente de projetos extensos: Torvalds descreveu o Git como sendo veloz e 
escalável, e testes de performance realizados pela Mozilla apontaram que o Git é uma ordem 
de magnitude mais rápido que algunssistemas de controle de versão. Obter o histórico das 
revisões salvos em repositórios locais resulta ser duas ordens de magnitude mais rápido que 
obtê-los de um servidor remoto. Um detalhe interessante é que o Git não fica mais lento com o 
aumento do histórico do projeto. 
GitHub 
GitHub é uma plataforma de hospedagem de código-fonte com controle de versão usando o Git. 
Ele permite que programadores, utilitários ou qualquer usuário cadastrado na plataforma 
contribuam em projetos privados e/ou Open Source de qualquer lugar do mundo. GitHub é 
amplamente utilizado por programadores para divulgação de seus trabalhos ou para que outros 
programadores contribuam com o projeto, além de promover fácil comunicação através de 
recursos que relatam problemas ou mesclam repositórios remotos. O GitHub é mundialmente 
usado e chega a ter mais de 36 milhões de usuários ativos mundialmente contribuindo em 
projetos comerciais ou pessoais. Hoje o GitHub abriga mais de 100 milhões de projetos,[2] 
alguns deles que são conhecidos mundialmente. WordPress, GNU/Linux, Atom, Electron. GitHub 
também oferece suporte ao recurso de organizacão que é amplamente utilizado por aqueles 
que querem uma escala maior para seus projetos. Na maioria das vezes, o recurso é usado por 
empresas já existentes como a Google, Microsoft e WordPress. 
História 
O GitHub foi desenvolvido por Chris Wanstrath, J. Hyett, Tom Preston-Werner e Scott Chacon 
usando Ruby on Rails, e começou em fevereiro de 2008. A empresa, GitHub, Inc., existe desde 
2007 e está localizada em São Francisco. O sombreamento do mapa ilustra o número de usuários 
como uma proporção da população da Internet de cada país. Os gráficos circulares que cercam 
os dois hemisférios descrevem o número total de usuários do GitHub e comprometem por país. 
Em 24 de fevereiro de 2009, os membros da equipe do GitHub anunciaram, em uma palestra no 
Yahoo! sede, que no primeiro ano de estar on-line, o GitHub acumulou mais de 46 mil 
repositórios públicos, 17 mil dos quais foram formados apenas no mês anterior. Naquela época, 
cerca de 6200 repositórios haviam sido bifurcados pelo menos uma vez e 4600 foram fundidos. 
Em 5 de julho de 2009, o GitHub anunciou que o site agora era aproveitado por mais de 100 mil 
usuários. Em 27 de julho de 2009, em outra palestra no Yahoo!, Preston-Werner anunciou que 
o GitHub tinha crescido para hospedar 90 mil repositórios públicos únicos, 12 mil tendo sido 
bifurcados pelo menos uma vez, para um total de 135 mil repositórios. Em 25 de julho de 2010, 
o GitHub anunciou que estava hospedando 1 milhão de repositórios. Em 20 de abril de 2011, o 
GitHub anunciou que estava hospedando 2 milhões de repositórios. Em 2 de junho de 2011, 
ReadWriteWeb informou que o GitHub havia ultrapassado o SourceForge e o Google Code em 
número total de commits para o período de janeiro a maio de 2011. Em 9 de julho de 2012, 
Peter Levine, sócio geral da investidora do GitHub, Andreessen Horowitz, afirmou que o GitHub 
vinha crescendo a receita de 300% ao ano desde 2008, "lucrativamente quase todo o caminho". 
Em 16 de janeiro de 2013, o GitHub anunciou que havia passado da marca de 3 milhões de 
usuários e, então, hospedava mais de 5 milhões de repositórios. Em 23 de dezembro de 2013, o 
GitHub anunciou que alcançou 10 milhões de repositórios. Em junho de 2015, o GitHub abriu 
um escritório no Japão que é seu primeiro escritório fora dos EUA. Em 29 de julho de 2015, o 
GitHub anunciou que havia captado US $ 250 milhões em financiamento em uma rodada 
liderada pela Sequoia Capital. A rodada valorizou a empresa em aproximadamente US $ 2 
bilhões. Em 2016, o GitHub ficou em 14º lugar na lista Forbes Cloud 100. Em 28 de fevereiro de 
2018, o GitHub foi vítima do segundo maior ataque de negação de serviço distribuído da história, 
com o tráfego de entrada chegando a um pico de cerca de 1,35 terabit por segundo. Em 4 de 
junho de 2018, a Microsoft anunciou que havia chegado a um acordo para adquirir o GitHub por 
US $ 7,5 bilhões. A compra foi encerrada em 26 de outubro de 2018. Em 19 de junho de 2018, o 
GitHub expandiu seu GitHub Education oferecendo pacotes de educação gratuitos para todas as 
escolas. 
Aquisição pela Microsoft 
Em 4 de junho de 2018, a Microsoft anunciou a compra da plataforma por US$ 7,5 bilhões, 
equivalente a R$ 27,225 bilhões com dólar cotado a R$ 3,63 no dia 06/06/2018. Satya Nadella, 
diretor executivo da Microsoft, reafirma a nova postura da Microsoft frente ao código aberto, 
dizendo: "A Microsoft é uma empresa que desenvolve em primeiro plano e, ao unir forças com 
o GitHub, fortalecemos nosso compromisso com a liberdade, a abertura e a inovação dos 
desenvolvedores. Reconhecemos a responsabilidade da comunidade que assumimos com este 
acordo e faremos o nosso melhor trabalho para capacitar cada desenvolvedor a construir, inovar 
e resolver os desafios mais prementes do mundo."

Continue navegando