Este artigo é um guia de referência para quem tiver interesse em aprender sobre o subversion, e como utilizar o TortoiseSVN. Todo projetista que se preze, no mínimo já ouviu falar dessas ferramentas, e se ainda não implementou por falta de conhecimento ou não compreender a finalidade das mesmas, este artigo vai suprir todas as suas curiosidades e dúvidas.

Espero que daqui por diante, passem a usar essa poderosa combinação para gerenciar as versões/revisões de seus projetos com maior qualidade e com melhores resultados nos suportes dos sistemas, além do pleno gerenciamento de permissões de acesso para cada participante dos projetos.

Subversion

O Subversion é um sistema de controle de revisões, ou, como deve ser chamado, um sistema de controle de configurações, uma vez que, hoje em dia, um programa é feito de um conjunto de arquivos, cada um em uma versão diferente, que ao serem compilados para formarem um único pacote, constituem uma configuração, pois o pacote completo pode estar em sua versão 1.1, mas alguns arquivos podem estar em versões 2.6, 4.1, ou ainda 0.6, por exemplo. O centro de informações a respeito do Subversion é a sua página na internet.

O manual mais completo está aqui.

Segue abaixo uma tradução de alguns trechos que deverão ajudar a entender o que é e como funciona o Subversion:

O Subversion é um sistema de controle de versão free/open-source. Isto é, o Subversion gerencia arquivos e diretórios no tempo. Uma árvore de arquivos é colocada em um repositório central. O repositório parece-se muito com um servidor de arquivos ordinário, exceto que ele se lembra de cada modificação alguma vez feita aos seus arquivos e diretórios. Isto permite que você recupere versões mais antigas dos seus arquivos, ou examine a história de como os seus arquivos se modificaram. Neste sentido, muitas pessoas pensam em um sistema de controle de versão como uma espécie de máquina de tempo.

O Subversion pode acessar o seu repositório através de redes, que permite que ele seja usado por pessoas em computadores diferentes. A um certo nível, a capacidade de várias pessosa modificarem e gerenciarem o mesmo conjunto de dados de suas respetivas localizações cria a colaboração. O progresso pode ocorrer mais rapidamente sem um canal único pelo qual todas as modificações devem ocorrer. E como o trabalho é versionado, você não tem de temer que a qualidade seja o preço a pagar pela troca daquele canal – se alguma modificação incorreta for feita aos dados, somente desfaça essa modificação.

O Subversion provê:

  • Versionamento de diretórios ou pastas
    • O Subversion implementa um sistema virtual de arquivos versionados que mantém o registro de modificações a árvores de diretórios ou pastas inteiras no tempo. Os arquivos e os diretórios são versionados.
  • Histórico de versão verdadeiro
    • São suportadas as operações como cópias e renomeações de arquivos, que são, na verdade, modificações aos conteúdos de algum diretório ou pasta que os contém. Adicionalmente, você pode substituir um arquivo versionado com alguma coisa nova com o mesmo nome sem que o novo item herde a história do velho – possivelmente completamente não relacionados. Com o Subversion, você pode acrescentar, eliminar, copiar, e renomear tanto arquivos como diretórios. E cada arquivo recentemente acrescentado começa com uma história fresca e limpa, toda sua.
  • Efetivações (commit) atômicos
    • Uma coleção de modificações entra no repositório ou completamente, ou de modo nenhum. Isto permite que desenvolvedores construam e façam modificações como blocos lógicos, e previne problemas que podem ocorrer quando só uma porção de um jogo de modificações é enviada ao repositório com sucesso .
  • Metadados versionados
    • Cada arquivo e diretório têm um conjunto de propriedades – chaves e os seus valores – associados a eles. Você pode criar e
      fornecer qualquer par chave/valor arbitrario que deseje. As propriedades são versionadas no tempo, como os conteúdos dos arquivos.
  • Escolha de camada de rede
    • O Subversion tem uma noção abstrata do acesso ao repositório, fazendo-o simples para pessoas implementarem novos mecanismos de rede. O Subversion pode se ligar ao Servidor de HTTP Apache como um módulo de extensão. Isto dá ao Subversion uma grande vantagem em estabilidade e interoperabilidade, e acesso imediato a características existentes fornecidas pela autenticação de servidor, autorização, compressão de dados, e assim por diante. Um tipo de servidor Subversion mais leve e autônomo também é disponível. Este servidor usa um protocolo próprio que pode ser facilmente através de um túnel SSH.
  • Manejo de dados consistente
    • O Subversion exprime diferenças entre arquivos usando um algoritmo binário de diferenciação, que trabalha identicamente tanto nos arquivos de texto (legíveis a humanos) como em binários (ilegíveis a humanos). Ambos os tipos de arquivos são guardados igualmente compactados no repositório, e as diferenças são transmitidas em ambas as direções através da rede.
  • Bifurcação (branching) e etiquetagem (tagging) eficientes
    • O custo da bifurcação (branching) e etiquetagem tagging) não tem de ser proporcional ao tamanho de projeto. O Subversion cria ramos (branches) e etiquetas (tags) simplesmente copiando o projeto, usando um mecanismo semelhante a um hard link. Assim essas operações tomam só um montante muito pequeno e constante de tempo.

Esta introdução mostra algumas características do Subversion, mas somente uma leitura mais profunda no seu manual pode realmente mostrar sua total potencialidade.

TortoiseSVN

O TortoiseSVN é uma ferramenta gráfica, que se integra ao Windows® Explorer, que facilita o uso do Subversion para usuários do Windows®, uma vez que o Subversion básico é uma ferramenta de comandos diretos de texto puro.

Mais informações podem ser obtidas diretamente em sua página na internet.

Observe que se trata do mesmo domínio que o Subversion, portanto é o mesmo grupo de desenvolvedores que fazem o desenvolvimento e manutenção de ambos os pacotes, dando uma maior garantia de compatibilidade e atualização simultânea.

Guia Básico do TortoiseSVN – C/C++ Brasil

Guia Avançado do TortoiseSVN – C/C++ Brasil

Informações mais detalhadas do uso do TortoiseSVN podem ser encontradas também no FAQ, além da própria ajuda do programa, que é bem completa.

Fonte: C/C++ Brasil