Baixe o app para aproveitar ainda mais
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."
Compartilhar