Artigo do tipo Teórico
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre boas práticas.

De SVN para Git
Este artigo apresenta as principais diferenças nas abordagens de controle de versão dos sistemas Subversion e Git. O Subversion é um sistema de controle de versão centralizado utilizado tradicionalmente em projetos Java. O Git é um sistema de controle de versão distribuído que apresenta crescente adoção na comunidade de desenvolvimento de software em geral, especialmente após sua popularização através do serviço de hospedagem de códigos GitHub.

Em que situação o tema é útil
Este tema é útil para desenvolvedores que buscam informações e alternativas de sistemas open source de controle de versão de software, e para usuários de Subversion que buscam avaliar as diferenças e impactos de uma migração para um sistema de controle de versão distribuído.

Este artigo tem como objetivo apresentar um comparativo entre os sistemas de controle de versão mais comuns no ecossistema Java: o Subversion (SVN), como representante do modelo centralizado de controle de versão, e o Git, como representante do modelo distribuído (ou DVCS – Distributed Version Control System). Assume-se que o leitor já possua familiaridade com algum sistema de versionamento de código e os conceitos de revisões, branches e tags, além do uso de ferramentas em linhas de comando. Ao final do artigo será apresentada uma breve introdução a ferramentas de integração do Git com outros sistemas, como IDEs Java, e ao processo de build, através da ferramenta Maven.

Na medida em que projetos de software tornam-se mais complexos, aumenta-se a demanda por respostas rápidas a mudanças e a necessidade de integração entre sistemas. Neste cenário, sistemas de controle de versão distribuídos deixaram de ser uma tendência tecnológica para se tornarem componentes essenciais no arsenal para o desenvolvimento de software, com demanda crescente no mundo corporativo. Entre as empresas que anunciaram o uso do Git em seus projetos temos o Google, que adaptou o Git para uso em seu projeto Android, e a Microsoft, que incluiu o suporte ao Git ao disponibilizar o código-fonte do framework ASP.NET MVC no Codeplex.

Esse movimento de adoção de sistemas de controle de versão distribuídos surgiu da necessidade de um modelo de gerenciamento de código onde o foco deixa de ser o simples backup do código-fonte e passa a ser o do compartilhamento e colaboração de código entre equipes de desenvolvimento diversificadas, desde equipes em setores diferentes de uma mesma empresa a projetos internacionais. Além da questão colaborativa, as ferramentas de controle de versão distribuído trazem novas abordagens para a solução de problemas de versionamento, com o propósito de aumentar a produtividade no processo de desenvolvimento de software.

Histórico

O Subversion é um sistema de controle de versão centralizado que consiste em um cliente (o SVN) e um servidor central, acessado por meio de TCP/IP, geralmente via SSH ou HTTP/WebDAV. Desenvolvido inicialmente pela CollabNet no final de 2000, e integrante do projeto Apache desde 2010, o SVN foi adotado em muitos projetos da comunidade Java devido à sua integração com as ferramentas de desenvolvimento, além de resolver problemas do seu antecessor – o CVS – ao incluir o suporte transacional e melhorias de performance na comunicação entre cliente e servidor.

...
Quer ler esse conteúdo completo? Tenha acesso completo